知行编程网知行编程网  2023-01-04 13:00 知行编程网 隐藏边栏  0 
文章评分 0 次,平均分 0.0
导语: 本文主要介绍了关于unicode与utf-8的对比的相关知识,包括chatgpt开源,以及unicode这些编程知识,希望对大家有参考作用。

UTF-8的一个特点是它是一种变长编码方式。它可以用1~4个字节来表示一个符号,字节长度根据不同的符号而不同。 UTF-8的编码规则很简单,只有两条:

1)对于单字节符号,字节的第一位设置为0,后7位为该符号的unicode编码。所以对于英文字母,UTF-8编码和ASCII编码是一样的。

2)对于n字节符号(n>1),第一个字节的前n位全部设为1,第n+1位设为0,后面字节的前两位全部设为10. 其余未提及的二进制位均为该符号的unicode编码。

unicode和utf-8的比较

下表总结了编码规则,字母x表示可用编码的位。

Unicode符号范围 | 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

以汉字“严”为例,演示如何实现UTF-8编码。

已知的“严格”unicode 是 4E25 (100111000100101)。根据上表可以发现4E25在第三行(0000 0800-0000 FFFF)范围内,所以“严格”的UTF-8编码需要三个字节,即格式为“1110xxxx 10xxxxxx 10xxxxxx”。然后,从“strict”的最后一个二进制位开始,从后往前依次填入格式中的x,多余的位补0。这样,“strict”的UTF-8编码就是“11100100 10111000 10100101”,转成十六进制为E4B8A5。

本文为原创文章,版权归所有,欢迎分享本文,转载请保留出处!

知行编程网
知行编程网 关注:1    粉丝:1
这个人很懒,什么都没写
扫一扫二维码分享