在属性文件

时间:2015-12-16 16:42:05

标签: java

我的字符串属性包含一些特殊字符。将它保存到属性文件后,我有:

BB\u0161BB=0

我不喜欢用\u0161代表的角色。为什么它不能像角色一样保存我在屏幕上看到它并从键盘输入?

UPD 读取包含特殊字符的ini文件架构文件的最简单方法是什么?

4 个答案:

答案 0 :(得分:3)

这就是定义属性文件的行为方式。任何其他系统都可能使用UTF-8,也可能无法读取。

由于您的角色超出了ISO-8859-1编码范围,因此必须使用unicode。

答案 1 :(得分:2)

你不能。来自javadoc:

  

...输入/输出流以ISO 8859-1字符编码   编码。无法直接表示的字符   可以使用部分中定义的Unicode转义编写编码   Java™语言规范的3.3;只有一个' u'转义序列中允许使用字符。

请参阅此How to use UTF-8 in resource properties with ResourceBundle

答案 2 :(得分:1)

属性文件是ISO-8859-1编码的,因此该集合之外的字符必须被\uXXXX转义。

答案 3 :(得分:1)

你可以!

使用其他应用程序(例如,Notepad ++很好)以unicode(例如UTF-8)对文件进行编码,并读取您的属性文件,如下所示:

File file = ... ;
Properties properties = new Properties();
try (FileInputStream in = new FileInputStream(file);
     Reader reader = new InputStreamReader(in, StandardCharsets.UTF_8)) {
  properties.load(reader);
}
// use properties

你去,你可以阅读和使用的任何字符集中的属性文件。