UTF-8编码规则

来源:互联网 发布:mac电脑怎么装exe软件 编辑:程序博客网 时间:2024/06/07 06:21

UTF-8编码规则:

1.对于单字节符号,第一位设为0,后面7位就是这个符号unicode码。对于英文字符,unicode码和ascii码是相同的

2.对于n个字节表示一个字符的情况,第一个字节的前n位设为1,紧跟的后一位设为0,后面的所有字节的前两位设为10,剩下的位用来unicode码的二进制来填充,填充规则是从后向前填充,多出的位补0

用表格介绍一下unicode码范围对应的utf-8字节数unicode编码范围UTF80x0000 0000~0x0000 007F0xxxxxxx  0x0000 0800~0x0000 07FF110xxxxx 10xxxxxx0x0000 8000~0x0000 FFFF1110xxxx 10xxxxxx 10xxxxxx0x0001 0000 ~0x0010 FFFF11110xxx 10xxxxxx 10xxxxxx 10xxxxxx因为目前为止Unicode-16规范没有指定FFFF以上的字符,所以UTF-8最多是使用3个字节来表示一个字符。但理论上来说,UTF-8最多需要用6字节表示一个字符。

如果unicode码范围在第一行,则它对应的UTF-8格式就是 0xxxxxxx,如果unicode码范围在第二行,则对应的UTF-8格式是110xxxxx 10xxxxxx

举例说明:

“连”的unicode码是DE8F, 查边得知范围属于第三行( 0x00008000 < 连 < 0x0000FFFF ),UTF-8编码要三个字节,DE8F二进制 1101 1110 1000 1111,把他的二进制填充到x的位置:

8FDE: 1000 1111 1101 1110

1110 xxxx 10xx xxxx 10xx xxxx

1110 1000 1011 1111 1001 1110     

十六进制:E8BF9E