Spring乱码

2019-06-06 189 Lei 0

情景一:jsp页面乱码

这种情况我们需要在JSP页面中加上编码声明,如下:

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>


情景二:数据库乱码

这种情况是当我们向数据库中存中文时,存入的中文乱码。解决方法是在JDBC配置(jdbc.properties)中指定编码。如下:

jdbc.url=jdbc:p6spy:mysql://${host}:3306/${dbName}?useSSL=true&serverTimezone=GMT%2B8&characterEncoding=utf8&autoReconnect=true

jdbc.url=jdbc:p6spy:mysql://${host}:3306/${dbName}?useSSL=true&serverTimezone=GMT%2B8&characterEncoding=utf8&autoReconnect=true

其中设置编码的部分是characterEncoding=utf8,指定为utf-8。


情景三:IDEA服务器tomcat乱码

这种情况是我的程序需要向另一台服务器发送数据,另一条服务器收到的数据是乱码。所以考虑是我的服务器导致的乱码。

IDEA中的解决方法是需要在IDEA服务器配置项VM Options中添加-Dfile.encoding=UTF-8,设置方法如下:


情景四:JSP表单中的中文提交到后台变成乱码

这种情况需要在web.xml中添加字符编码过滤器,如下:

<filter>
    <filter-name>CharacterEncodingFilter</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>CharacterEncodingFilter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

<url-pattern>/*</url-pattern>表示对所有的URL全都使用UTF-8编码。


  0