UTF之间有什么不同?
没有BOM的UTF-8和UTF-8有什么区别? 哪个更好?
UTF-8 BOM是一系列字节(EF BB BF),允许读者将文件标识为以UTF-8编码。
通常,BOM用于表示编码的字节顺序,但由于字节顺序与UTF-8无关,所以BOM不是必需的。
根据Unicode标准, 不推荐使用UTF-8文件的BOM :
2.6编码方案
...对UTF-8既不要求也不推荐使用BOM,但可能会在UTF-8数据从使用BOM的其他编码形式转换或使用BOM作为UTF-8签名的上下文中遇到。 有关更多信息,请参见第16.8节“特殊内容”中的“字节顺序标记”小节。
其他优秀的答案已经回答说:
EF BB BF
但是,作为附加信息,对于UTF-8的BOM而言,如果字符串是以UTF-8编码的话,它可能是一种很好的方式,或者它可能是任何其他编码中的合法字符串......
例如,数据[EF BB BF 41 42 43]可以是:
因此,虽然通过查看第一个字节来识别文件内容的编码可能很酷,但不应该依赖于此,如上例所示
编码应该是已知的,不是必须的。
将BOM放入UTF-8编码文件至少有三个问题。
而且,正如其他人所提到的那样,使用BOM来检测UTF-8是不够的,也是不必要的:
上一篇: What's different between UTF
下一篇: java.lang.RuntimeException: An error occured while executing doInBackground(