【问题标题】:how to determine text encoding如何确定文本编码
【发布时间】:2011-03-13 19:19:51
【问题描述】:

我知道 UTF 文件具有用于确定编码的 BOM,但是其他具有 不知道如何猜测该编码。

我是新的 Java 程序员。 我已经编写了使用 UTF BOM 猜测 UTF 编码的代码。 但我对其他编码有疑问。我怎么猜。

有人可以帮助我吗? 提前致谢。

【问题讨论】:

    标签: java utf


    【解决方案1】:

    此问题与several previous ones 重复。至少有两个 Java 库尝试猜测编码(但请记住,没有办法 100% 正确猜测)。

    当然,如果您知道编码只会是三四个选项之一,您也许可以编写更准确的猜测算法。

    【讨论】:

      【解决方案2】:

      简短的回答是:你不能。

      即使在 UTF-8 中,BOM 也是完全可选的,因此通常建议不要使用它,因为许多应用程序无法正确处理它,只是将其显示为可打印的字符。字节顺序标记的最初目的是区分 UTF-16 文件的字节顺序。

      也就是说,大多数处理 Unicode 的应用程序都实现了某种猜测算法。阅读文件的开头并查找某些签名。

      【讨论】:

        【解决方案3】:

        如果您不知道编码并且没有任何指示符(如 BOM),则并非总是可以准确“猜测”编码。存在一些可以给你提示的指针。

        例如,ISO-8859-1 文件(通常)没有任何 0x00 字符,但 UTF-16 文件有很多字符。

        最常见的解决方案是,如果您无法检测到编码,则让用户选择它。

        【讨论】:

        • 包含中文文本的 UTF-16 文件实际上根本不会有很多 0x00 字节。
        猜你喜欢
        • 2010-09-30
        • 2011-06-17
        • 2011-05-14
        • 2021-06-04
        • 1970-01-01
        • 2012-06-16
        相关资源
        最近更新 更多