【问题标题】:Correct mechanism to encode country names for different platforms为不同平台编码国家名称的正确机制
【发布时间】:2012-01-24 08:42:37
【问题描述】:

我正在使用 this method 为国家/地区创建 Java 枚举。

这在我的 windows 开发盒上编译得很好,但是在 unix 服务器上构建时它会失败并出现以下错误:

error: unmappable character for encoding UTF8

这是由 Å 等字符引起的。处理这个问题的最佳方法是什么?

【问题讨论】:

    标签: java utf-8 internationalization


    【解决方案1】:

    您的源代码文件显然使用了与 UTF-8 不同的编码,而 Unix 服务器上的 Java 编译器使用 UTF-8 作为默认编码。

    确定 Java 源文件的固定编码(可能 UTF-8 是最合适的)并告诉 Java 编译器源代码是 UTF-8 编码的。如何做到这一点,取决于您使用的构建系统。

    【讨论】:

    • 我知道每个人都不会同意,但在混合操作系统/混合 IDE 环境中,最适合我们的是制定极其严格但又非常简单的准则:您不得 i> 将任何非 ASCII 字符放入 .java 源文件中。这是由自定义构建脚本强制执行的:一旦违反此规则,构建就会立即失败。我们这样做是因为没有描述 .java 文件编码的元数据,而且有太多工具(IDE、差异工具、脚本等)可能会失败。人们应该使用转义或外部化字符串(属性、XML 等)。
    猜你喜欢
    • 2015-08-18
    • 1970-01-01
    • 2016-02-07
    • 1970-01-01
    • 1970-01-01
    • 2020-12-28
    • 2014-01-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多