美文网首页
中文,Unicode,UTF-8编码转换

中文,Unicode,UTF-8编码转换

作者: Jiahongx | 来源:发表于2020-02-12 12:12 被阅读0次

Unicode是国际统一的编码,包含中文,英文字母,日文,韩文,等其它国家的统一编码。

Unicode用2个字节表示一个字符。

查找一个字符对应的Unicode编码,需要对照Unicode编码表。

‘中’字符的Unicode编码为20013.  16进制为0x4DE2.

UTF-8是一种存储方式,是将Unicode编码保存在文件中的方式,它不改变字符的编码,只是存储字符编码。

UTF-8将Unicode字符编码,保存为1-4个字节,其编码方式如下:

1)对于单字节的符号,字节的第一位设为0,后面7位为这个符号的unicode码。因此对于英语字母,UTF-8编码和ASCII码是相同的。

2)对于n字节的符号(n>1),第一个字节的前n位都设为1,第n+1位设为0,后面字节的前两位一律设为10。剩下的没有提及的二进制位,全部为这个符号的unicode码。

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”。然后,从“严”的最后一个二进制位开始,依次从后向前填入格式中的x,多出的位补0。这样就得到了,“严”的UTF-8编码是 “11100100 10111000 10100101”,转换成十六进制就是E4B8A5。

相关文章

  • Unicode16 与 UTF-8编码之间的转换

    Unicode16 与 UTF-8 中文编码之间的转换 头文件 ————————————————转自CSDN博主「...

  • 编码/加密例子

    ASCII转Unicode 中文转Unicode (16进制?) 中文转UTF-8 URL编码window.enc...

  • 编码

    编码 编码格式(ASCII编码,GB2312编码(简体中文),GBK,ANSI编码,unicode,utf-8编码...

  • 中文,Unicode,UTF-8编码转换

    Unicode是国际统一的编码,包含中文,英文字母,日文,韩文,等其它国家的统一编码。 Unicode用2个字节表...

  • 关于编码二三事

    1.中文编码共有3种,unicode, utf-8, gb2312。虽然unicode和utf-8比较像,但是我们...

  • 爬虫必知300点

    Beautiful Soup自动将输入文档转换为Unicode编码,输出文档转换为utf-8编码。你不需要考虑编码...

  • python 编码转换

    python 编码转换 主要介绍了Python的编码机制,unicode, utf-8, utf-16, GBK,...

  • js 16进制转中文

    转换为中文字符串 转换为unicode编码

  • 字符集

    UTF-8编码规范 UTF-8是一种可变长的编码方式,规则如下: 所以,2个字节的中文unicode被UTF-8编...

  • python2.7 处理中文

    python2的中文处理很麻烦,特做总结。 unicode 与 utf-8 默认的中文使用的是utf-8编码,前面...

网友评论

      本文标题:中文,Unicode,UTF-8编码转换

      本文链接:https://www.haomeiwen.com/subject/iawqfhtx.html