单个unicode字符编码之后的最大长度为6个字节。
UTF-8的编码规则很简单, 只有两条:
- 1个字节:Unicode码为0 - 127
- 2个字节:Unicode码为128 - 2047
- 3个字节:Unicode码为2048 - 0xFFFF
- 4个字节:Unicode码为65536 - 0x1FFFFF
- 5个字节:Unicode码为0x200000 - 0x3FFFFFF
- 6个字节:Unicode码为0x4000000 - 0x7FFFFFFF
1·对于单字节的符号, 字节的第一位设为0, 后面7位为这个符号的unicode码. 因此对于
英语字母, UTF-8编码和ASCII码是相同的.
2· 对于n字节的符号 (n>1) , 第一个字节的前n位都设为1, 第n+1位设为0, 后面字节的前
两位一律设为10. 剩下的没有提及的二进制位, 全部为这个符号的unicode码.
- | Unicode符号范围 | UTF-8编码方式
- n | (十六进制) | (二进制)
- ---+-----------------------+------------------------------------------------------
- 1 | 0000 0000 - 0000 007F | 0xxxxxxx (1个字符)
- 2 | 0000 0080 - 0000 07FF | 110xxxxx 10xxxxxx (2个字符)
- 3 | 0000 0800 - 0000 FFFF | 1110xxxx 10xxxxxx 10xxxxxx (3个字符)
- 4 | 0001 0000 - 0010 FFFF | 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx (4个字符)
- 5 | 0020 0000 - 03FF FFFF | 111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx (5个字符)
- 6 | 0400 0000 - 7FFF FFFF | 1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx (6个字符)