我在Netbeans中遇到了一个与.properties
文件相关的问题。我使用这些文件来为我的应用程序提供一些本地化字符串。
情况1
如果我在Netbeans中创建一个新的.properties
文件(New -> Properties File
),并在其中添加一些行:
INFO_OEFFNEN=Открыть информацию
FILE=Файл
SPRACHE=Язык
一切运作良好,所有的字符串都已正确翻译:
但是如果我使用Notepad++打开该文件,我会看到以下内容(Notepad++将编码识别为
UTF-8
,可能不正确):INFO_OEFFNEN=\u041e\u0442\u043a\u0440\u044b\u0442\u044c \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e
FILE=\u0424\u0430\u0439\u043b
SPRACHE=\u042f\u0437\u044b\u043a
案例二
如果我使用Notepad++创建一个UTF-8编码的.properties文件,并包含以下行:
INFO_OEFFNEN=Открыть информацию
FILE=Файл
SPRACHE=Язык
当我在Netbeans中打开它时,我看到这个:
INFO_OEFFNEN=ÐÑкÑÑÑÑ Ð¸Ð½ÑоÑмаÑиÑ
FILE=Файл
SPRACHE=ЯзÑк
在GUI中,我看到了一些非常奇怪的东西:
案例3
我做了与案例2相同的事情,但是在Netbeans中,我将.properties
文件的“use project encoding
”属性设置为true
。
现在,在Netbeans编辑器中,我看到了正确的文本(但是被SVN标记为100%“修改”)。当我启动应用程序时,字符串看起来像这样:
问题:
我认为Netbeans创建的属性文件的默认编码不是UTF-8。在这种情况下,我该如何检查Netbeans默认使用哪种编码?
我想编写一个简短的Java应用程序,它读取一个由Netbeans创建的.properties
文件,添加或替换一些行,并创建一个新文件,该文件应该被Netbeans正确读取。在InputStreamReader
中应该使用哪种编码?
请给我一些关于这个问题的提示。我的有关Netbeans默认编码不同的假设是正确的吗?恐怕我在这里没有理解一些重要的问题。
一些附加信息:
- Netbeans project encoding: UTF-8
- Help->About:
*NetBeans IDE 8.1 (Build 201510222201)
*Java: 1.8.0_92; Java HotSpot(TM) 64-Bit Server VM 25.92-b14
*System: Windows 7 version 6.1 running on amd64; UTF-8; de_DE (nb)