java - 奇怪的字符编码

标签 java character-encoding websphere-liberty open-liberty

我有一个在 Linux 上的 WebSphere Liberty 上运行的项目。 我的语言是巴西葡萄牙语,我们有一些重音单词。 我的java代码设置了一些用户消息,如下所示:

...
ErroResponse erroResponse = new ErroResponse();
erroResponse.setMensagem("Esse grupo não pode ser criado. Já existe um grupo criado com esse nome.");
response = Response.status(Status.BAD_REQUEST).entity(erroResponse).build();
...

当向用户显示相同的消息时,它看起来像这样: enter image description here

我不认为这是浏览器编码问题,因为该消息在我的服务器日志上看起来相同。 enter image description here

我尝试使用 -Dclient.encoding.override 设置 JVM 编码 -Dfile.encoding 为 ISO-8859-1 和 UTF-8,但没有成功。

在 Windows 服务器上运行的同一项目运行没有问题,并以正确的重音显示消息。

只有直接写在源代码中的消息才有这个问题。来自数据库查询结果的重音词被正确呈现。

我使用的是 Suse 11.4。

我真的很感谢任何帮助。

谢谢

最佳答案

尝试检查您的 Suse 编码和语言,方法是:

$ echo $LC_CTYPE
ISO-8859-1

$ echo $LANG
pt_BR

获取所有语言:

$ locale -a

更改为 pt_PT.utf8:

$ export LC_ALL=pt_PT.utf8 
$ export LANG="$LC_ALL"

关于java - 奇怪的字符编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45289791/

相关文章:

java - PHP/Java 桥 UnsupportedClassVersionError

php - 在mysql中使用UTF-8的终极方法

java - Openliberty 与 java11 有警告

log4j2 - Websphere 自由 : How to specify log4j2 configuration location?

java - 用于即时读取/拉取的自定义缓冲输入流

java - 操作ContainerRequestFilter的InputStream

java - 哈希表哈希避免负哈希码

php - b"string"在 dd() 函数中是什么意思?

Python将字节字符串转换为字节数组

jdbc - 使用 WebSphere Liberty Profile 8.5 设置数据源