java.util.Properties 编码

标签 java

我在两个不同的系统上得到不同的结果,但不知道为什么。

Properties prop = new Properties();
prop.load(new ByteArrayInputStream(input)); //input is byte[]

在两个系统上,输入都包含 "var=\\u00C4\\u00DC\\u00D6\\u00E4\\u00FC\\u00F6"

在我的测试系统中,prop 包含 "var=ÄÜÖäüö"。 (这就是我想要的)

在另一个系统 Prop 上包含 "var=\xC4\xDC\xD6\xE4\xFC\xF6"。这是十六进制的 input,但为什么 Properties 会这样做呢?不幸的是,我对其他系统配置一无所知。

有人知道原因吗?

最佳答案

Java .properties 文件使用 ISO-8859-1 (Latin-1) 编码,而不是 UTF-8。所有非 Latin-1 字符都必须使用 Unicode 转义字符输入,例如\uHHHH

另一种方法是对属性使用 XML 格式,即 UTF-8

Source: Javadoc

Also see this SO question

And this one

关于java.util.Properties 编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34718637/

相关文章:

java - 使用可比较的类进行排序

java - 将标题栏添加到 JFrame (Linux)

java - 使用 future.cancel() 终止底层线程以重新使用该线程

java - 如何处理url中的特殊字符作为参数值?

javascript - Thymeleaf 将数据从 html id 传递到 thymeleaf 变量

java - 如何将 Elasticsearch 建议与 Spring 数据一起使用?

java - spring mvc 应用程序中未填充选择框

java - Liferay API : Get Roles via Permissions

java - 如何将Sparql查询结果存储到数组中?

java - 不兼容的类型和新的类型变量