JS传中文参数到Controller的时候出现了乱码。web
查看了web.xml中的CharacterEncodingFilter配置没有问题。tomcat
并且在测试环境上跑的时候功能正常可是在开发环境却有问题。尝试了在代码中添加:post
request.setCharacterEncoding("xxxx")之类的方法也不可行。测试
可是code
new String(name.getBytes("ISO-8859-1"),"UTF-8");
可行。server
查了一些资料后了解到Tomcat对于post和get的处理方式不一样。xml
因此过滤器和request.setCharacterEncoding("xxxx")之类的方法对POST方法可行,可是对GET方法没有做用。开发
因此想要解决这个问题要修改Tomcat的配置文件server.xmlget
找到<Connector connectionTimeout="20000" port="8080"> 这段信息io
而后再最后加上 URIEncoding="UTF-8" 便可。
总结:
post方法受过滤器以及setCharacterEncoding方法的限制,可是get方法不受,因此要修改get方式的乱码问题,要从tomcat的配置文件入手解决。
以上,愚见。