Asc*_*iom 7 string unicode utf-8 character-encoding
给定以UTF-8编码的Unicode字符串,它只是内存中的字节.
如果计算机想要将这些字节转换为相应的Unicode代码点(数字),它怎么知道一个字符的结束位置和另一个字符的开头?一些字符由1个字节表示,其他字符由最多6个字节表示.所以,如果你有
00111101 10111001
Run Code Online (Sandbox Code Playgroud)
这可能代表2个字符,或1.计算机如何确定正确解释它?是否有某种约定我们可以从第一个字节知道当前字符使用了多少字节或什么?
Jon*_*oni 14
多字节序列的第一个字节以前导1位的数量对序列的长度进行编码:
0xxxxxxx
是一个独立的角色;10xxxxxx
是多字节字符的延续;110xxxxx
是2字节字符的第一个字节;1110xxxx
是3字节字符的第一个字节;11110xxx
是4字节字符的第一个字节.具有超过4个前导1位的字节不编码UTF-8中的有效字符,因为4字节序列已经覆盖了从U + 0000到U + 10FFFF的整个Unicode范围.
因此,问题中提出的示例有一个ASCII字符和一个连续字节,它不会自己编码字符.
归档时间: |
|
查看次数: |
454 次 |
最近记录: |