我有一个单一的UTF-8编码字符串,其中包含键值对链,需要被加载到Properties对象中。我注意到我的初始实现出现了乱码字符,在一番搜索后,我找到了这个问题,指出了我的问题——基本上是因为Properties默认使用ISO-8859-1编码方式。这是我的原始实现:
public Properties load(String propertiesString) {
Properties properties = new Properties();
try {
properties.load(new ByteArrayInputStream(propertiesString.getBytes()));
} catch (IOException e) {
logger.error(ExceptionUtils.getFullStackTrace(e));
}
return properties;
}
没有指定编码,这就是我的问题。对于我的问题,我无法弄清如何链接/创建 Reader
/ InputStream
组合以传递给 Properties.load()
,该组合使用提供的 propertiesString
并指定编码。我认为这主要是由于我在I / O流方面的经验不足以及java.io包中众多的IO实用程序库。
感谢任何建议。