如何区分Mac OS Roman和UTF8

时间:2012-10-04 20:52:55

标签: character-encoding

我有文本文件,我怎么知道文件中的文字是UTF8标准还是Mac OS Roman

2 个答案:

答案 0 :(得分:1)

UTF-8文件可以以byte order mark (BOM)开头,这样可以轻松识别。

如果他们不这样做,你就无法确定,但需要基本上编写代码以进行有根据的猜测。

有几种方法可以猜测;

  • 扫描文件是否有非法的UTF8序列,如果它们在那里,该文件应该是MacRoman。
  • 扫描您正在阅读的文件中的“常用”字符,如果它们是ascii 128或更高,则它们在UTF-8和MacRoman中的编码方式不同。

所有字符< = ascii 127在两种编码之间应该是相同的,所以如果文件中存在所有字符,则编码无关紧要,它将产生相同的文本。

答案 1 :(得分:1)

对于单个文件,实际的举措是打开它,例如在Web浏览器中,通过浏览器的“视图”菜单测试两种编码的样子。如果编码很重要(即,在Ascii范围0-127之外有字符),您通常应该立即看到差异(至少如果您可以阅读文档的语言)。

在编程中,如果您需要设置一个自动解决此类问题的通用工具,最好尝试在两种编码中读取文件(使用您喜欢的编程语言和工具)并检查成功。如果两种方式都成功,请检查它是否也可以作为Ascii读取 - 如果可以,答案是微不足道的(文件是UTF-8和MacRoman编码),如果没有,你需要一些额外的逻辑。原则上,需要检查内容,因为数据可以在编码级别双向解释,只有内容可以解析哪种解释是正确的。