Java Spring UTF-8 在不同环境下失败

Java Spring UTF-8 fails in Different Environments

我有一个执行 Ajax 调用的应用程序,其中将一个字符串传递给服务器,服务器 return 一个包含相同字符串的 json 字符串,以及其他信息。我将此应用程序托管在 Amazon Web Services (AWS) 的服务器和我的本地开发环境中。

当我在 AWS 环境中通过此调用特殊字符(á、ñ 等)时,它们 return 在 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 环境中失败但在我的本地环境中有效吗?跟操作系统的语言有关系吗?

在我的例子中,tomcat,在 server.xml 文件

的标签中指定 URIEncoding=utf8 属性

<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="utf8" />

并设置LANG系统环境为UTF8(如en_US.UTF-8)并重启WAS再试

几个月后,由于这个答案,我可以解决问题