中文乱码的问题
1. post请求的方式,参数在request body中(可使用请求监控工具查看,如Fiddler)
解决办法:在spring CharacterEncodingFilter类中,通过request.setCharacterEncoding(this.encoding)来转码;
![](http://192.168.1.220:8090/download/attachments/9076744/springEncoding.png?version=1&modificationDate=1372040534399&api=v2)
2. get(包括接口)访问,参数是跟在URL后(header中),在spring中不允许直接修改request.getParameterMap()
解决办法:修改 tomcat目录\conf\server.xml,在tomcat访问端口Connector设置URIEncoding="UTF-8"
![](http://192.168.1.220:8090/download/attachments/9076744/tomcat.png?version=1&modificationDate=1372040534415&api=v2)
3.
数据库、java代码层、view层编码的一致
数据库:
![](http://192.168.1.220:8090/download/attachments/9076744/jdbc.png?version=1&modificationDate=1372040534368&api=v2)
java代码层:
file encoding: UTF-8
view层:
![](http://192.168.1.220:8090/download/attachments/9076744/jsp.png?version=1&modificationDate=1372040534399&api=v2)
以上是整个web项目中涉及到的编码设置,保持一致后,中文乱码问题就解决了。
备注:
String s = new String(name.getBytes(“ISO8859_1”),” UTF-8”);
第一个参数是目标编码(页面网页上的编码),后一参数是字符串的源编码格式。