我可以使用编码与默认编码不同的java.util.Properties吗?
答案 0 :(得分:5)
是的,但是您必须小心使用Reader
/ Writer
的{{3}}和load()
方法,并使用{显式构造这些方法{1}}使用正确的编码。
对于隐式使用属性文件的库,这可能无法实现。
编辑:上面描述的方法只在Java 1.6中引入 - 对于旧版本,你运气不好,正如dsadinoff写的那样。
答案 1 :(得分:3)
除非你
这是规范中非常烦人的缺陷。有几种解决方法,最简单的方法是从编码适当的(cp1250,utf-8,无论如何)源自动生成unicode转义的兼容.properties文件。
Java附带一个名为native2ascii的代码转换器来为您执行此操作:
有一些关于这个主题的老年RFE:
答案 2 :(得分:1)
如果你的属性文件在构建时可用,你也可以使用native2ascii任务在你的ant脚本中转换它:
<property name="javac.source.encoding" value="Cp1250"/>
<native2ascii src="${src.dir}" dest="${classes.dir}"
encoding="${javac.source.encoding}"
includes="**/*.properties"/>