属性 正在以错误的编码读取属性文件

Property from properties file being read in the wrong encoding

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

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

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

这就是它在 运行ning 应用程序上的样子:

我所有的项目文件(包括 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 字符。