java - 以错误的编码读取属性文件中的属性

标签 java encoding javafx controlsfx

我有一个属性文件,其中包含一些葡萄牙语属性,使用一些重音字符。这些属性是从第 3 方库(Controls FX Dialogs)读取的。但不知何故,重音字符以错误的编码读取(仅在 MS Windows 上测试)。

这是我的属性文件中的内容:

dlg.yes.button = Sim
dlg.no.button = Não

这就是它在运行的应用程序上的样子: enter image description here

我的所有项目文件(包括 java 源文件和属性文件)均采用 UTF-8 编码。我只能在Windows上测试它,所以我认为它与Windows默认编码(Cp1252)有关。我还尝试使用 UTF8 编码和选项 -Dfile.encoding=UTF8 来运行应用程序,但问题仍然存在

知道为什么会发生这种情况吗?

最佳答案

属性文件始终被视为 ISO-8859-1 文件。来自 documentation :

The input stream is in a simple line-oriented format as specified in load(Reader) and is assumed to use the ISO 8859-1 character encoding; that is each byte is one Latin1 character.

您需要将文件另存为 ISO Latin-1,或使用 \u 转义符写入所有非 ASCII 字符。

关于java - 以错误的编码读取属性文件中的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31170884/

相关文章:

C# SerialPort 编码转换为 byte[]

java - Spring AOP 中的 Advise 方法错误

java - 在 TabLayout 中滑动选项卡时 fragment 不会刷新

java - HQL 查询是否总是命中数据库并获得结果?

c# - Unicode 字符串到二进制字符串和二进制字符串到 unicode c#

c - 如何逐行读取unicode(utf-8)/二进制文件

JavaFX Integer Spinner (IntegerSpinnerValueFactory) 不会将值环绕到最小值

Java:通过应用程序类打开游戏时不会触发 keyPressed 事件

java - 单击其他选项卡上的其他按钮时允许单击按钮

java - equals() 给我空指针异常