彻底办理乱码
1.1 @ResponseBody 表明乱码
这种乱码是由于JSON字符串和工具进行序列号和反序列化的时候用涌现的问题,String转换的时候默认用的编码是ISO-8859-1。
办理办法1: 在 @RequestMapping 要求映射的表明中属性 produces=\公众text/html;charset=UTF-8\"大众
办理办法2: 一劳永逸的办法 在spring配置中配置下
<mvc:annotation-driven >
<mvc:message-converters register-defaults=\"大众true\"大众>
<bean class=\"大众org.springframework.http.converter.StringHttpMessageConverter\"大众>
<property name=\公众supportedMediaTypes\"大众 value=\"大众text/html;charset=UTF-8\"大众/>
</bean>
</mvc:message-converters>
</mvc:annotation-driven>
办理办法3: 如果还不能办理GET涌现的乱码,就在JSP页面添加配置:
<%@ page language=\公众java\"大众 import=\"大众java.util.\"大众 pageEncoding=\公众UTF-8\"大众%>
1.2 数据库乱码
创建数据库的时候,一样平常都会选择 UTF-8的字符编码办法来创建数据库。一样平常不会涌现来乱码问题,但是在配置 jdbc的时候,不把稳没有添加上配置,也可能涌现乱码:
jdbc.url= jdbc:mysql://localhost:3306/testdb?characterEncoding=UTF-8
1.3 control 层编码格式问题
如果利用:request.setCharacterEncoding(\"大众UTF-8\"大众);
相应也利用:response.setContentType(\公众application/json;charset=UTF-8\"大众);
1.4 IDE默认编码问题
IDEA默认时UTF-8,eclipse则是GBK
eclipse须要配置下IDE默认编码: General->Workspace->Text file encoding
1.5 tomcat 涌现乱码情形
tomcat 一样平常会先乱码情形,但是tomcat也可以配置,可以预防这种乱码的可能性。 在conf -> server.xml 中进行配置
<Connector executor=\"大众tomcatThreadPool\"大众 port=\公众8080\"大众 protocol=\公众HTTP/1.1\"大众 connectionTimeout=\公众20000\公众 redirectPort=\公众8443\"大众 URIEncoding=\公众UTF-8\公众 /> -
1.6 tomcat 如还连续涌现乱码,连续处理
这次在启动脚本中添加 utf-8编码方案,来彻底办理乱码问题
windows catalina.bat:
set JAVA_OPTS=%JAVA_OPTS% %LOGGING_CONFIG% -Dfile.encoding=\"大众UTF-8\"大众
linux catalina.sh:
JAVA_OPTS=\"大众-Dfile.encoding=UTF-8\公众