【发布时间】:2012-03-28 19:22:13
【问题描述】:
我在 Eclipse (Indigo Service Release 1) 中有一个编码问题。 以下是发生的事情:
我有一个德语属性文件(语言包),当我在Eclipse 中打开它时,它没有正确显示。例如:gelöscht 显示为gel�scht。我尝试将文件关联更改为Text Editor、Properties File Editor、JBoss Tools Properties Editor,但在所有情况下都显示为这样。
有趣的是,当我在Notepad++ 中打开文件时,它会正确显示。
在Eclipse中,文本文件编码设置为UTF-8,文件的编码(根据Notepad++)为ANSI。
还有其他我不知道的设置吗?如何解决此问题以在Eclipse 中查看正确的编码?
【问题讨论】:
-
请注意,Java 中的
.properties文件必须以 ISO-8859-1 编码,而不能 UTF-8。这是 Java 中比较奇怪/不一致的决定之一。 -
@JoachimSauer:嗯,这取决于要阅读它们的内容。 Spring早就支持其他编码了,现在可以将任意
Reader传入Properties.load。 -
@JonSkeet:当然可以,但是有很多基础设施实际上并没有使用该功能。 save 赌注是使用默认编码(和/或对所有非 ASCII 字符使用 unicode 转义)。
-
@JoachimSauer:默认编码是一个糟糕的选择,IMO - 谁说你的机器的默认编码和我的机器一样?您应该绝对使用固定的、明确指定的编码 - 应该是 ASCII-with-Unicode-escapes 或 UTF-8 IMO。
-
@JonSkeet:我一直不清楚:我的意思是“
Properties.load(InputStream)定义的 .properties 文件的默认编码恰好是 ISO-8859-1”。是的,使用平台默认编码是个糟糕的主意。
标签: java eclipse encoding resourcebundle