Java .properties 文件在尝试获取希伯来语值时出现乱码

标签 java encoding

我试图从 .properties 文件中读取希伯来文值,但出现乱码。我尝试了几种方法,包括更改文件的编码(Cp1255、ISO-8859-8、UTF-8),向参数添加 -file.encoding,但没有任何帮助。

这个问题是在我们从 IAS(OC4J 容器)迁移到 Weblogic 期间提出的,我注意到 javascript 消息(从 .properties 文件中读取)显示为 ????? ???,这不会发生在 OC4J 上。但是,这仅适用于从 .properties 文件读取的数据,其他一切都显示正常。

我已经在谷歌上搜索了几天,但我还没有想出解决方案。

编辑: 我在家里试过的

ResourceBundle rb = ResourceBundle.getBundle("test");
System.out.println(rb.getString("test"));

这是 test.properties 的样子:

test שלום

输出是:ùìåí

最佳答案

因为你有一个 ResourceBundle 的实例,你可以通过以下方式获得 ISO-8859-1 编码的字符串:

String strISO = rb.getString("test");

然后您可以将其转换为 UTF-8 并使用以下命令打印:

System.out.println(new String(strISO.getBytes("ISO-8859-1"), "UTF-8"));

关于Java .properties 文件在尝试获取希伯来语值时出现乱码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14059392/

相关文章:

java - 具有多个数据源和外部配置的 Spring Boot、Spring JPA

java - 按对象属性对元素进行分组

encoding - MPEG-TS 编码

javascript - 简化/编码 JSON 复合键

java - 绕过 setter 更改对象的值是一种不好的做法吗?

java - 监听器如何在 Java 中工作,它们位于何处,内存管理是什么?

encoding - 您如何解决字符编码问题?

javascript - 还可以发送图像甚至文件的 Socket.io 聊天应用程序

file - 为什么我应该使用人类可读的文件格式?

java - 代理 InputStream 的方法