首页 > 解决方案 > BOM 字符列表

问题描述

是否有可能使用的 BOM 字符列表?到目前为止,我遇到过:

\x00\x00\xfe\xff    UTF-32, big-endian
\xff\xfe\x00\x00    UTF-32, little-endian
\xfe\xff            UTF-16, big-endian
\xff\xfe            UTF-16, little-endian
\xef\xbb\xbf        UTF-8

我还缺少其他的吗?

标签: csvhexutfbyte-order-mark

解决方案


简短的回答:不,你已经覆盖了它们。

根据 Unicode 规范,UTF-8、UTF-16 和 UTF-32 是 3 种通用编码类型。他们实际上将 UTF-16、UTF-16LE 和 UTF-16BE 列为单独的编码,类似地 UTF-32、UTF-32LE 和 UTF-32BE。

重要的是要知道,如果字符流以 LE 或 BE 形式之一显式编码,则必须将前导 0xFFFE 解释为 U+FEFF 零宽度不间断空格。IE

UTF-16BE  initial FE FF is treated as U+FEFF
UTF-16LE  initial FF FE is treated as U+FEFF
UTF-32BE  initial 00 00 FE FF is treated as U+FEFF
UTF-32LE  initial FF FE 00 00 is treated as U+FEFF

有关详细信息,请参阅http://www.unicode.org/versions/Unicode11.0.0/ch03.pdf#G2212 。


推荐阅读