Unicode UTF-8多字节&;物料清单

Unicode UTF-8多字节&;物料清单,unicode,utf-8,character-encoding,byte-order-mark,Unicode,Utf 8,Character Encoding,Byte Order Mark,我读过这本很棒的教程 但我不明白UTF-8是如何解决高端和低端机器的问题的。 对于10字节,这很好。 对于多字节,它是如何工作的 有人能更好地解释吗?这里有一个链接可以深入解释UTF-8 在它的核心,UTF-16是面向短整数(16位)的,UTF-8是面向字节的。由于体系结构在数据类型字节的排序方式(大端、小端)上可能有所不同,UTF-16编码可以采用任何一种方式。我知道在所有的架构中,在半字节或半八位字节级别上都没有端点。所有字节都是8位的序列。因此UTF-8没有端点 日本人的性格あ 这是一个

我读过这本很棒的教程

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


有人能更好地解释吗?

这里有一个链接可以深入解释UTF-8

在它的核心,UTF-16是面向短整数(16位)的,UTF-8是面向字节的。由于体系结构在数据类型字节的排序方式(大端、小端)上可能有所不同,UTF-16编码可以采用任何一种方式。我知道在所有的架构中,在半字节或半八位字节级别上都没有端点。所有字节都是8位的序列。因此UTF-8没有端点

日本人的性格あ 这是一个很好的例子。它是U+3042(二进制=001100000100010

  • UTF-16BE:30,42=001100000100010
  • UTF-16LE:42,30=0100001000110000
  • UTF-8:e3,81,82=11100011:10000001:10000010

这里有一个链接,深入解释UTF-8

在它的核心,UTF-16是面向短整数(16位)的,UTF-8是面向字节的。由于体系结构在数据类型字节的排序方式(大端、小端)上可能有所不同,UTF-16编码可以采用任何一种方式。我知道在所有的架构中,在半字节或半八位字节级别上都没有端点。所有字节都是8位的序列。因此UTF-8没有端点

日本人的性格あ 这是一个很好的例子。它是U+3042(二进制=001100000100010

  • UTF-16BE:30,42=001100000100010
  • UTF-16LE:42,30=0100001000110000
  • UTF-8:e3,81,82=11100011:10000001:10000010

UTF-8没有endiannes问题。UTF-16出现了这个问题,因为在将一个由两个字节组成的块序列写入文件或通信流时,需要将其视为一个字节块序列,这可能会对两字节数中的字节顺序有不同的理解。因为UTF-8在字节级别工作,所以BOM不需要在大端和小端机器上正确解析序列。如果一个字符是多字节的,这并不重要:UTF-8精确地定义了在对一个代码点进行多字节编码的情况下,字符的顺序


UTF-8中的BOM表示完全不同的内容(因此“字节顺序标记”是一个小的“关闭”)。这是为了表明“这将是一个UTF-8流”。UTF-8 BOM通常不受欢迎,许多程序也不正确支持它。网站utf8everywhere.org认为它在将来应该被弃用。

UTF-8没有endiannes问题。UTF-16出现了这个问题,因为在将一个由两个字节组成的块序列写入文件或通信流时,需要将其视为一个字节块序列,这可能会对两字节数中的字节顺序有不同的理解。因为UTF-8在字节级别工作,所以BOM不需要在大端和小端机器上正确解析序列。如果一个字符是多字节的,这并不重要:UTF-8精确地定义了在对一个代码点进行多字节编码的情况下,字符的顺序


UTF-8中的BOM表示完全不同的内容(因此“字节顺序标记”是一个小的“关闭”)。这是为了表明“这将是一个UTF-8流”。UTF-8 BOM通常不受欢迎,许多程序也不正确支持它。网站utf8everywhere.org认为它应该在将来被弃用。

+1的链接和信息。给我一点时间,我会给你回复的。链接和信息+1。给我点时间,我会给你回复的。