Java Websphere 8.5.5 UTF-8编码问题

Java Websphere 8.5.5 UTF-8编码问题,java,spring,encoding,utf-8,websphere,Java,Spring,Encoding,Utf 8,Websphere,我在Websphere 8.5.5上的应用程序有问题。这是一个用于发送电子邮件的SpringREST应用程序。在我的服务中,我接收邮件详细信息,并使用spring将其转发给接收者。它工作得很好,但是当我尝试发送非ascii字符的消息时,消息到达时会用问号替换特殊字符。UTF-8编码不起作用。在我的电脑中,该应用程序运行在Liberty Profile server上,最初也无法运行。我在谷歌上搜索了这个问题,发现spring需要一个过滤器来解释特殊字符,所以我在我的 web.xml 同样的事情也

我在Websphere 8.5.5上的应用程序有问题。这是一个用于发送电子邮件的SpringREST应用程序。在我的服务中,我接收邮件详细信息,并使用spring将其转发给接收者。它工作得很好,但是当我尝试发送非ascii字符的消息时,消息到达时会用问号替换特殊字符。UTF-8编码不起作用。在我的电脑中,该应用程序运行在Liberty Profile server上,最初也无法运行。我在谷歌上搜索了这个问题,发现spring需要一个过滤器来解释特殊字符,所以我在我的 web.xml

同样的事情也发生了。它在liberty上工作,但在Websphere上不工作。 然后我发现,通过添加以下JVM参数,可以强制WebSphere使用UTF-8:

-Dclient.encoding.override=UTF-8
-Dfile.encoding=UTF-8
就像这个答案中解释的那样:

我在服务器上设置参数并重新启动,就像我在互联网上找到的许多指南中所解释的那样, 但很明显,它不起作用

这是在运行的linux计算机中的locale命令的输出:

LANG=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=
我被困住了,不知道还能做什么


任何帮助都将不胜感激。

位于
/properties
encoding.properties
文件是另一个包含编码设置的位置。默认值(英文)为
en=ISO-8859-1
。将此更新为
en=UTF-8
并重新启动服务器。

谢谢,我找到了该文件,正如您所说,该值为
en=ISO-8859-1
。现在的问题是,在服务器中运行许多应用程序,这些应用程序托管在不同的虚拟服务器中。我的应用程序运行在专门为她创建的虚拟服务器中。这是在单个虚拟服务器级别设置
encoding.properties
的一种方法吗?因为我不希望更改对服务器上的所有应用程序生效。@amicoderozer:1)在WAS术语中,我不确定“虚拟服务器”这个术语是什么意思。你能澄清一下吗?2) ISO-8859-1是Unicode的一部分,因此全局UTF-8设置与您当前的应用程序没有任何兼容性问题。很抱歉,我是说应用程序服务器。我想知道是否可以在应用程序服务器级别设置另一个encoding.properties文件。好的,非常感谢你的解释。@amicoderozer:没问题。我还没有看到在一个概要文件下定义了多个服务器,所以我不能具体说明这个用例。由于profile_根文件夹是跨服务器共享的,因此在每台服务器上设置encoding.properties文件似乎是不可行的。
-Dclient.encoding.override=UTF-8
-Dfile.encoding=UTF-8
LANG=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=