Java 从属性读取数据而不分析Unicode字符

Java 从属性读取数据而不分析Unicode字符,java,properties-file,Java,Properties File,“RATNAGIRI GAS\u0026POWER”是属性文件中的数据。读取应用程序时,它将转换为“RATNAGIRI GAS和电源”。这里正在进行字符类型转换。如何停止这种自动转换 这就是我加载属性文件的方式。请分享您对为什么会发生这种情况以及如何读取属性文件中的字符串的想法 Properties prop = new Properties(); InputStream in = getClass().getResourceAsStream(properties_name); property

“RATNAGIRI GAS\u0026POWER”是属性文件中的数据。读取应用程序时,它将转换为“RATNAGIRI GAS电源”。这里正在进行字符类型转换。如何停止这种自动转换

这就是我加载属性文件的方式。请分享您对为什么会发生这种情况以及如何读取属性文件中的字符串的想法

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

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

您可以做的是转义属性文件中的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();
}
key=\u0026
rawKey=\\u0026
测试包中的test.properties文件

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();
}
key=\u0026
rawKey=\\u0026
输出

&
\u0026

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

这就是属性文件的工作方式。为什么要读取原始字符串?您的用例是什么?测试用例需要。我需要将数据库中的值(原始字符串)与测试用例中的值进行比较,然后不要将其作为属性加载,而是将其作为文本文件读取。或者转义unicode转义序列。如何转义unicode序列?API中是否有任何可用功能,或者我们需要手动执行?您需要手动执行,正如Mena在其回答中所示(使用反斜杠转义初始unicode序列反斜杠)。或者,您可以将文件读入字符串,并在将其加载到属性之前用两个反斜杠替换反斜杠。但是我仍然不太理解这个用例。。。数据库中是否有属性文件内容?