我可以使用与默认编码不同的 java.util.Properties 吗?

有帮助吗?

解决方案

不会,除非你

  1. 正在运行 java 6 或更高版本
  2. 控制代码加载属性文件,并且可以使用Reader。看 javadoc.

这是规范中一个非常烦人的缺陷。有几种解决方法,最简单的可能是从适当的编码(cp1250、utf-8 等)源自动生成符合 unicode 转义的 .properties 文件。

Java 附带了一个名为 原生2ascii 为您执行此操作:

有一些关于这个主题的古老 RFE:

其他提示

是的,但是你必须小心使用 load()store() 方法采用 Reader/Writer, ,并通过使用显式构造它们 InputStreamReader/OutputStreamWriter 使用正确的编码。

对于隐式使用属性文件的库来说,这可能是不可能的。

编辑: 上面描述的方法只在 Java 1.6 中引入 - 对于旧版本,你运气不好,正如 dsadinoff 所写的。

如果您的属性文件可在编译的时候,你也可以使用native2ascii的任务转换它在你的Ant脚本:

<property name="javac.source.encoding" value="Cp1250"/>

<native2ascii src="${src.dir}" dest="${classes.dir}"
   encoding="${javac.source.encoding}"
   includes="**/*.properties"/>
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top