Web应用的中文乱码由来
-
Tomcat默认使用字符集ISO-8859-1,属于西欧字符集Web应用的中文乱码由来
-
解决乱码的核心思路是将ISO-8859-1转换为UTF-8
-
Controller中请求与响应都需要设置UTF-8字符集
中文乱码的配置
1.Get请求乱码 - server.xml增加URIEncoding属性
增加 URIEncoding="UTF-8"
注:Tomcat8.0以后版本默认是UTF-8,可不加。
2.Post请求乱码 - web.xml配置CharacterEncodingFilter
配置过滤器代码如下:
<filter>
<filter-name>characterFilter</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>
</filter>
<filter-mapping>
<filter-name>characterFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
3.Response响应乱码 - Spring配置StringHttpMessageConverter
<mvc:message-converters>
<bean class="org.springframework.http.converter.StringHttpMessageConverter">
<property name="supportedMediaTypes">
<list>
<value>text/html;charset=utf-8</value>
</list>
</property>
</bean>
</mvc:message-converters>
配置Spring消息转换器,关键是添加"text/html;charset=utf-8"