中文参数乱码的问题,归根到底就是编码与解码时格式不一致导致的。要解决这类问题,首先就得分析前台传参是以什么格式对请求进行编码的,后台再以相应的格式进行解码就可以了。
Tomcat的默认编码是ISO-8859-1,当Tomcat收到GET请求时,它会使用ISO-8859-1对请求进行编码,因此Java后台在接收这些中文参数时,必须使用ISO-8859-1进行解码,再以UTF-8的格式进行编码,才能得到正确的中文参数.
这种情况可以有两种方法来解决编码问题:
1.通过修改Tomcat的默认编码方式为UTF-8解决乱码问题
在tomcat的conf目录下,编辑server.xml配置文件,找到下面的代码
<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443"/>
添加URIEncoding="UTF-8"
<Connector URIEncoding="UTF-8" connectionTimeout="20000" port="8080" protocol="HTTP/1.1"
redirectPort="8443" />
2.在WEB项目中增加一个字符编码转换的拦截器,将ISO-8859-1编码转换成UTF-8编码