1

“RATNAGIRI GAS \ u0026 POWER”是属性文件中的数据。当读取到应用程序时,它被转换为“RATNAGIRI GAS & POWER”。字符类型转换发生在这里。如何停止这种自动转换?

这就是我加载属性文件的方式。请分享您对它发生的原因以及如何读取属性文件中的字符串的想法。

Properties prop = new Properties();
InputStream in = getClass().getResourceAsStream(properties_name);
property.load(in);
4

1 回答 1

2

我认为没有一种干净的方法可以做到这一点。

您可以做的是在属性文件中转义您的 unicode 表示,或者将所选字符转换回它们的 unicode 表示。

下面关于第一个“解决方案”的小例子。对这个答案不是很自豪。

代码

Properties p = new Properties();
InputStream s = Main.class.getClassLoader().getResourceAsStream("test/test.properties");
try {
    p.load(s);
    System.out.println(p.get("key"));
    System.out.println(p.get("rawKey"));
}
catch (IOException ioe) {
    ioe.printStackTrace();
}

测试包中的 test.properties 文件

key=\u0026
rawKey=\\u0026

输出

&
\u0026

您可能需要检查“转换回 unicode”“解决方案”。

于 2013-11-08T20:02:37.187 回答