1.单字节符号
字节第一位设为0, 后面7位为符号的unicode码(英语字母的UTF-8编码和ASCII码相同).
2.n(>1)字节的符号
首字节前n位设为1,第n+1位设为0,后面所有字节的前两位设为10,其他二进制位为符号的unicode码.
Unicode符号范围(十六进制) UTF-8编码方式(二进制,字母x表示可用编码的位)
---+-------------------------+---------------------------------------------------------
1 | 0000 0000 - 0000 007F | 0xxxxxxx
2 | 0000 0080 - 0000 07FF | 110xxxxx 10xxxxxx
3 | 0000 0800 - 0000 FFFF | 1110xxxx 10xxxxxx 10xxxxxx
4 | 0001 0000 - 0010 FFFF | 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx
5 | 0020 0000 - 03FF FFFF | 111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
6 | 0400 0000 - 7FFF FFFF | 1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
---------------------------------------------------------------------------------------
UTF-8中可以用来表示字符编码的最多有31位。除去每字节开头的控制位,编码位x与UNICODE编码一一对应,位高低顺序也相同。
UNICODE转换为UTF-8编码时,应先去除高位0,然后根据所剩编码的位数决定所需最小的UTF-8编码位数。 因此基本ASCII字符集中的字符只需要一个字节的UTF-8编码(7个二进制位)便可以表示。