在XML文档和Mozilla通用字符集检测器(UCSD)的不同实现中,出现了一个BOM序列,其中字节顺序或单词顺序都颠倒了,但两者都没有,他们称之为“不寻常的八进制顺序”:
XML文档
F.1 Detection Without External Encoding Information
...
00 00 FF FE UCS-4, unusual octet order (2143)
FE FF 00 00 UCS-4, unusual octet order (3412)通用字符集检测器(UCSD)源 (仅举一个例子):
if (('\xFF' == aBuf[1]) && ('\x00' == aBuf[2]) && ('\x00' == aBuf[3]))
// FE FF 00 00 UCS-4, unusual octet order BOM (3412)
mDetectedCharset = "X-ISO-10646-UCS-4-3412";
else if (('\x00' == aBuf[1]) && ('\xFF' == aBuf[2]) && ('\xFE' == aBuf[3]))
// 00 00 FF FE UCS-4, unusual octet order BOM (2143)
mDetectedCharset = "X-ISO-10646-UCS-4-2143";Known character sets
...
X-ISO-10646-UCS-4-2143
X-ISO-10646-UCS-4-3412是否存在使用这种功能的硬件,是否有这样的编码或ISO标准,是否有支持编码/解码的流行libs?为什么这些序列不像其他无效序列一样被忽略?
发布于 2014-02-20 01:41:25
ISO 10646和Unicode只包括大端和小端UCS-4/UTF-32,而不是中间端.据我所知,没有任何软件使用这些编码,它们实际上是无关的。那么,为什么XML标准会提到它呢?我不知道,但我想提到它是出于对理论完整性的渴望,而不是对任何实际价值的渴望;同样的可能也适用于字符检测/转换软件,其中包括对它的支持。
历史上,有一些系统使用中端字节顺序;PDP-11使用3412格式存储32位数字。因此,如果您尝试在PDP-11上处理UCS-4/UTF-32,那么UCS-4-3412格式可能是有用的。但在实践中,没有人尝试这样做,因为到Unicode到达时,PDP-11已经超过了鼎盛时期;而且由于PDP-11只是16位机器,所以UCS-4并不是与它们一起使用的最佳Unicode格式。
https://stackoverflow.com/questions/18518730
复制相似问题