UTF-8规则:
1. 对于单字节的符号, 字节的第一位设为0, 后面7位为这个符号的Unicode码, 因此utf-8的前128个字符与
ASCII兼容.
2. 对于n字节的符号(n > 1), 第一个字节的前n位都是1, 第n+1位为0, 后面字节的前两位一律设置为10.
剩下的二进制位为这个符号的unicode码.
UTF-8的编码范围:
|Unicode符号范围(16进制) | UTF-8编码方式 (二进制) |
|-------------------------|:-------------------------------------|
| 0000 0000 - 0000 007F | 0xxxxxxx |
| 0000 0080 - 0000 07FF | 110xxxxx 10xxxxxx |
| 0000 0800 - 0000 FFFF | 1110xxxx 10xxxxxx 10xxxxxx |
| 0001 0000 - 0010 FFFF | 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx |
以"严"为例: 其Unicode是4E25, 位于0x0800-0xFFFF之间, 因此严的UTF-8编码需要3个字节, 从严的最后一个
二进制位开始, 依次从后向前填入格式的x中, 多出的位补0, 这样就得到了严的UTF-8编码. 其16进制就是:
E4B8A5.
网友评论