我有一个执行Ajax调用的应用程序,其中字符串传递给服务器,服务器返回包含相同String的json字符串以及其他信息。我将此应用程序托管在Amazon Web Services(AWS)和本地开发环境中的服务器上。
当我在AWS环境中通过此调用特殊字符(á,ñ等)时,它们会在json中返回带有问号的菱形。谜团是人物在我的本地开发环境中正确编码。
我有这个标签来编码HTML模板:
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
我也得到了服务器注释:
@RequestMapping(value="/actualizarDestinos", produces = "application/json; charset=utf-8", method = RequestMethod.GET)
在web.xml的tomcat配置中,我取消注释了此过滤器setCharacterEncodingFilter。
知道为什么编码在AWS环境中失败但在我的本地环境中工作?它与操作系统的语言有关吗?
答案 0 :(得分:1)
在我的情况下,tomcat,在server.xml文件的tag中指定URIEncoding = utf8属性
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="utf8" />
并将LANG系统环境设置为UTF8(如en_US.UTF-8)并重新启动WAS并再次尝试。
答案 1 :(得分:0)
几个月后,我可以通过这个答案解决问题