【发布时间】:2010-09-27 11:56:47
【问题描述】:
识别字符串(是或)是否可能是 UTF-8 编码的最佳方法是什么? Win32 API IsTextUnicode 在这里没有多大帮助。此外,该字符串不会有 UTF-8 BOM,因此无法检查。而且,是的,我知道只有 ASCII 范围以上的字符才被编码为超过 1 个字节。
【问题讨论】:
-
你用什么语言试试这个?
-
没关系 - 我正在寻找一种通用方法。但是,如果您可以提供适用于特定语言的内容,请加入。
-
而且,您不会在 UTF-8 流的开头找到 BOM,这是没有意义的,因为无论字节顺序是什么,UTF-8 都是相同的。
-
是的,但它仍然被某些人称为“BOM”。我更喜欢称它为“序言”(如 .NET)或“签名”。它仍然可以用于识别编码。