【发布时间】:2016-08-14 15:09:13
【问题描述】:
我在一个 java 项目中工作,其中标签被外部化并转换为 .properties 文件。
Java 中的资源使用 ISO-8859-1 编码读取,因此.properties 文件也以 ISO-8859-1 编码存储。
当前文件混乱,有时使用转义符\u00E4,有时使用实际字母öäü。
我也有类似这样的俄语翻译:
code.adr=\u0430\u0434\u0440\u0435\u0441
这可以使用 UTF-8 以明文形式存储。
现在的问题是,为什么不使用 UTF-8?
为什么 Java 在默认情况下使用 ISO-8859-1 而不是 UTF-8,向后兼容?
将所有 .properties 文件转换为 UTF-8 是否有任何已知的缺点?
【问题讨论】:
-
该规范是在 UTF-8 成为普遍接受的默认编码之前编写的。既然它是这样指定的,它就必须保持这样。话虽如此,您可以使用您选择的编码加载属性文件,但预计会有一些混乱(我隐约记得某些 Spring 组件实际上默认使用 UTF-8)。跨度>
标签: java character-encoding properties-file