Java 在属性文件中保存特殊字符

Java 在属性文件中保存特殊字符,java,Java,我有包含一些特殊字符的字符串属性。将其保存到属性文件后,我有: BB\u0161BB=0 我不喜欢用\u0161表示的字符。为什么它不能像我在屏幕上看到的字符那样保存,并从键盘上键入 UPD 读取包含特殊字符的ini文件体系结构文件的最简单方法是什么?属性文件就是这样定义的。任何其他系统都可能使用UTF-8,而UTF-8也可能不可读 由于您的字符超出ISO-8859-1编码范围,因此必须改用unicode编码。您不能。从javadoc: …输入/输出流以ISO 8859-1字符编码 编码。无法

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

BB\u0161BB=0
我不喜欢用
\u0161
表示的字符。为什么它不能像我在屏幕上看到的字符那样保存,并从键盘上键入

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

属性文件就是这样定义的。任何其他系统都可能使用UTF-8,而UTF-8也可能不可读


由于您的字符超出ISO-8859-1编码范围,因此必须改用unicode编码。

您不能。从javadoc:

…输入/输出流以ISO 8859-1字符编码 编码。无法在此字段中直接表示的字符 可以使用第节中定义的Unicode转义来编写编码 Java的3.3™ 语言规范;转义序列中只允许一个“u”字符


请参阅此

属性文件是ISO-8859-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
现在,您可以在任何可以读取和使用的字符集中读取属性文件