【问题标题】:Why not convert all .properties files to UTF-8?为什么不将所有 .properties 文件转换为 UTF-8?
【发布时间】: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


【解决方案1】:
  1. 如果您使用 ResourceBundle,切换到 ListResourceBundle 可能是可行的:那是纯 java(数组)。
  2. 或者,您可能想要从 XML 翻译记忆库 xliff 或其他任何内容中生成 *.properties。这样做的好处是可以添加 cmets;创建词汇表等。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-07-19
    • 1970-01-01
    • 1970-01-01
    • 2012-06-01
    • 2015-09-21
    • 1970-01-01
    相关资源
    最近更新 更多