5

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

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

任何人都可以帮助我吗?提前致谢。

4

3 回答 3

4

这个问题与之前几个 问题重复。至少有两个 Java 库试图猜测编码(尽管请记住,没有办法 100% 正确猜测)。

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

于 2010-07-09T12:44:40.293 回答
0

简短的回答是:你不能。

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

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

于 2010-07-09T10:27:25.453 回答
0

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

例如,一个 ISO-8859-1 文件(通常)没有任何 0x00 字符,但是一个 UTF-16 文件有它们的负载。

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

于 2010-07-09T10:28:48.193 回答