1)中文JSP页面编码统一为UTF-8后,页面可以正常显示,但从数据库中获取的数据依然显示乱码(比如下拉表单的数据);
2)当使用了springMVC提供的编码Filter拦截处理后,表单数据、从数据库获取的数据、表单提交中文都正常了,但页面上的中文字体却乱码了,如下图所示:
解决方法:
1)在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>
2)修改JSP页面增加“<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>”,如果已经存在则不需要添加。