java.util.Properties 和 Cp1250
-
20-09-2019 - |
题
我可以使用与默认编码不同的 java.util.Properties 吗?
解决方案
不会,除非你
- 正在运行 java 6 或更高版本
- 控制代码加载属性文件,并且可以使用Reader。看 javadoc.
这是规范中一个非常烦人的缺陷。有几种解决方法,最简单的可能是从适当的编码(cp1250、utf-8 等)源自动生成符合 unicode 转义的 .properties 文件。
Java 附带了一个名为 原生2ascii 为您执行此操作:
有一些关于这个主题的古老 RFE:
- 提供基于UTF-8的属性资源包 - 2004
- Properties 类需要一个加载(Reader)/存储(Writer)接口 - 1997
其他提示
如果您的属性文件可在编译的时候,你也可以使用native2ascii的任务转换它在你的Ant脚本:
<property name="javac.source.encoding" value="Cp1250"/>
<native2ascii src="${src.dir}" dest="${classes.dir}"
encoding="${javac.source.encoding}"
includes="**/*.properties"/>
不隶属于 StackOverflow