解决POST请求乱码问题:
在web.xml中加入:
<!-- 处理字符编码 -->
<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>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
注: 设置forceEncoding
参数,Spring的早期版本这个参数作用很单一,当request中已经被指定了一个字符集的时候是否再将用 endcoding
对应的字符集设置到request中去。若过滤器如以上代码被配置到web.xml皮配置文件中,当请求 被提交之后,过滤器会判断request.getCharacterEncoding()是否为null,如果是null那么就会进行 request.setCharacterEncoding(“UTF-8”)的操作,如果不是null那么过滤器什么也不会做。
GET请求中文参数出现乱码解决方法
方式一: 修改tomcat配置文件添加编码与工程编码一致,如下:
<ConnectorURIEncoding="utf-8" connectionTimeout="20000"
port="8080" protocol="HTTP/1.1" redirectPort="8443"/>
方式二:对参数进行重新编码:
String userName = new String
(request.getParamter("userName").getBytes("ISO8859-1"),"utf-8")
注:ISO8859-1是tomcat默认编码,需要将tomcat编码后的内容按utf-8编码。