浏览器对表单中数据进行编码;根据网页的ContentType="UTF-8"进行编码。由于POST传来数据Tomcat默认以ISO-8859-1编码成单字节数据
浏览器与服务器编码方式不一致会出现中文乱码问题
在Servlet中解决方案:
- 使用request.setCharacterEncoding(“UTF-8”),仅支持post方法
- 更改tomcat中默认编码格式
用Spring提供的中文乱码解决方案:
在web.xml中配置过滤器,过滤器是servlet规范所以要在web.xml中配置。
init-param指定编码方式
filter-mapping指定需要过滤的请求路径
<!-- 配置utf-8编码过滤器 -->
<filter>
<filter-name>encodingFilter</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>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>