我在 GET 请求中使用 spring mvc 和特殊字符时遇到问题。考虑以下方法:
@RequestMapping("/update")
public Object testMethod(@RequestParam String name) throws IOException {
}
例如,我向其发送名称包含“ä”(德语元音变音)的 GET 请求。这会导致 spring 收到“ä”,因为浏览器将“ä”映射到%C3%A4
.
那么,我怎样才能获得控制器的正确编码字符串呢?
感谢您的帮助!
您遇到此问题是因为请求区分了正文编码和 URI 编码。 CharacterEncodingFilter 设置正文编码,但不设置 URI 编码。
你需要设置URIEncoding=“UTF-8”“作为 Tomcat server.xml 中所有连接器的属性。请参阅此处:http://tomcat.apache.org/tomcat-6.0-doc/config/ajp.html http://tomcat.apache.org/tomcat-6.0-doc/config/ajp.html
或者,您也可以设置 useBodyEncodingForURI="True"。
如果您使用的是maven tomcat插件,只需添加此参数:
mvn -Dmaven.tomcat.uriEncoding=UTF-8雄猫:运行
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)