Utf 8 UTF8编码如何支持内存中1到4字节的范围?

Utf 8 UTF8编码如何支持内存中1到4字节的范围?,utf-8,character-encoding,Utf 8,Character Encoding,我希望这不是一个愚蠢的问题,在这个夜晚的时候,但我似乎不能把我的思想围绕着它 UTF-8是一种可变长度编码,每个字符至少8位。代码点较高的字符将占用最多32位 因此UTF-8可以对1到4字节范围内的unicode字符进行编码 这是否意味着在单个UTF-8编码字符串中,一个字符可以是1字节,另一个字符可以是3字节 如果是这样,在本例中,当从UTF-8解码时,计算机如何不尝试将这两个单独的字符视为一个4字节字符?如果数据作为UTF-8保存在内存中,则是的,它将是可变宽度编码 然而,编码允许解析器知道

我希望这不是一个愚蠢的问题,在这个夜晚的时候,但我似乎不能把我的思想围绕着它

UTF-8是一种可变长度编码,每个字符至少8位。代码点较高的字符将占用最多32位

因此UTF-8可以对1到4字节范围内的unicode字符进行编码

这是否意味着在单个UTF-8编码字符串中,一个字符可以是1字节,另一个字符可以是3字节


如果是这样,在本例中,当从UTF-8解码时,计算机如何不尝试将这两个单独的字符视为一个4字节字符?

如果数据作为UTF-8保存在内存中,则是的,它将是可变宽度编码

然而,编码允许解析器知道您正在查看的字节是一个码点的开始还是一个额外字符

从:


@tripleee抱歉,我不知道搜索时使用什么关键字。我继续,并接受了它作为一个副本。这很好,我们都知道,在堆栈溢出上的搜索很糟糕,即使你确切地知道要搜索什么。我通过谷歌找到了复制品。感谢你能迅速地接受欺骗;这有助于保持网站的重点和清洁!
Bytes  Bits    First     Last      Bytes
  1      7     U+000000  U+00007F  0xxxxxxx
  2     11     U+000080  U+0007FF  110xxxxx 10xxxxxx
  3     16     U+000800  U+00FFFF  1110xxxx 10xxxxxx 10xxxxxx
  4     21     U+010000  U+10FFFF  11110xxx 10xxxxxx 10xxxxxx 10xxxxxx