UTF-8是可变长度编码。如果字符可以用单个字节表示,例如:A(英文字母表A),UTF-8将用单个字节对其进行编码。如果它需要两个字节,它将使用两个字节,依此类推。现在考虑我编码A (01000001)あ(11100011 10000001 10000010)。这将作为连续空间存储在内存中: 01000001 11100011 10000001 10000010。
**它可能最终解码4个字符,其中每个字节都被视为字符,我的意思是这里的区别在哪里。
发布于 2018-01-08 12:10:35
UTF-8编码告诉程序每个编码码点有多少字节。任何以0xxxxxxx
开头的字节都是从0到127的ASCII码字符。任何以10xxxxxx
开头的字节都是连续字节,并且只能出现在开始字节之后:110xxxxx
、1110xxxx
或11110xxx
分别指定下一个字节、两个字节或三个字节是连续字节。
如果没有正确的连续字节数,或者连续字节出现在错误的位置,那么该字符串就不是有效的UTF-8。一些程序利用这一点来尝试自动检测编码。
https://stackoverflow.com/questions/48143210
复制相似问题