1

我读过这个很棒的教程
http://www.joelonsoftware.com/articles/Unicode.html

但我不明白 UTF-8 如何解决高端、低端机器的问题。对于 1byte,它很好。对于多字节,它是如何工作的?

有人可以解释得更好吗?

4

2 回答 2

5
于 2012-05-28T07:00:08.517 回答
1

UTF-8 没有字节序问题。UTF-16 会出现问题,因为在将其写入文件或通信流时需要将两字节块序列视为字节块序列,这可能对两字节中的字节顺序有不同的想法-字节数。因为 UTF-8 在字节级别工作,所以 BOM 无需能够在大端和小端机器上正确解析序列。字符是否为多字节无关紧要:UTF-8 准确定义了字符的顺序,以防代码点的多字节编码。

UTF-8 中的 BOM 用于完全不同的东西(嗯,所以名称“字节顺序标记”有点“关闭”)。这是为了表明“这将是一个 UTF-8 流”。UTF-8 BOM 一般不受欢迎,很多程序都不能正确支持。该网站 utf8everywhere.org 认为它应该在未来被弃用。

于 2012-05-29T04:41:15.677 回答