我有一个属性文件,其中包含一些葡萄牙语属性,使用一些重音字符。这些属性是从第 3 方库(Controls FX Dialogs)读取的。但不知何故,重音字符以错误的编码读取(仅在 MS Windows 上测试)。
这是我的属性文件中的内容:
dlg.yes.button = Sim
dlg.no.button = Não
这就是它在运行的应用程序上的样子:
我的所有项目文件(包括 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/