你好,Stackoverflowers的伙伴。
我有个问题需要帮助:
我们正在进行从智能手机应用程序到Java/Spring MVC应用程序的http GET web服务调用。我们在Tomcat应用程序服务器上,该应用程序服务器的前端是一台Apache服务器,该服务器带有一个模块
_
代理代理设置。
URL中嵌入的参数之一是单词"Männen",这是其中一个参数所在的组织名称。应用程序发出一个Jquery Ajax GET请求,参数离开应用程序为"M%E4nnen",据我理解,这意味着"ä“已经被正确的URL编码。当它到达Spring控制器时,它被扭曲为“M?nnen”。
我已经在谷歌上找到了相当多的关于这方面的帖子,他们都建议修改Tomcat的server.xml文件,给所有的连接器添加URIEncoding="UTF-8“。当然,我试过了。它进行了更改,但没有解决问题。这个字符串现在变成了“Mí²nnen”。还有一个线程建议您在Apache proxy配置中将"nocanon“添加到ProxyPass参数中。这是尝试过的,但没有什么不同。
使用日志,我可以遵循请求:
在Apache访问日志中,该参数记录为"M%E4nnen“
在Apache代理日志中,该参数记录为"M%E4nnen“
在Tomcat本地主机中
_
访问日志,参数记录为"M%E4nnen“
在接收该请求的Spring控制器中,该参数被记录为“M?²nnen”
我的Spring应用程序也有一个字符编码过滤器,但据我所知,它只在请求体上工作。配置如下:
CharacterEncodingFilter
org.springframework.web.filter.CharacterEncodingFilter
encoding
UTF-8
forceEncoding
true
CharacterEncodingFilter
/*我真的不知道还可以尝试什么,或者去哪里看。如果有人能为我指引正确的方向,我将不胜感激。
https://stackoverflow.com/questions/18616256
复制相似问题