首页 > 代码库 > spring,web,java 开发中乱码解决方案

spring,web,java 开发中乱码解决方案

  1. 修改HTML/JSP页面编码格式:

    <meta charset="UTF-8">或<%@ page contentType="text/html; charset=UTF-8"%> 

  2. web.xml中的编码设置(  需要设置forceEncoding参数值为true,强制以目标编码为编码格式 )

       

<filter>
       <filter-name>CharacterEncoding</filter-name>
       <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
       <init-param>
           <param-name>encoding</param-name>
           <param-value>UTF-8</param-value>
       </init-param>
       <init-param>
           <param-name>forceEncoding</param-name>
           <param-value>true</param-value>
       </init-param>
   </filter>
   <filter-mapping>
       <filter-name>CharacterEncoding</filter-name>
       <url-pattern>/*</url-pattern>
   </filter-mapping>

但这个设置是针对POST请求的,tomacat对GET和POST请求处理方式是不同的,要处理针对GET请求的编码问题,则需要改tomcat的server.xml配置文件,如下:



3.tomcat的server.xml配置文件

<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443"
 />


4.数据库乱码

  配置数据源编码格式

<property name="url" 

value="jdbc:mysql://121.40.90.125/test?useUnicode=true&characterEncoding=utf-8"></property>   


然后去修改数据库、表中列的编码格式为utf8


让MySQL支持Emoji表情

解决方案:将Mysql的编码从utf8转换成utf8mb4。


修改数据库字符集:

ALTER DATABASE database_name CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci;

 

修改表的字符集:

ALTER TABLE table_name CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

 

修改字段的字符集:

ALTER TABLE table_name CHANGE column_name column_name VARCHAR(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;



spring,web,java 开发中乱码解决方案