mysql unicode转utf8_Unicode UTF-8 转换

本文介绍了Unicode编码系统和UTF-8实现方式,详细解释了UTF-8的编码规则,并通过例子展示了如何将Unicode字符'严'转换为UTF-8编码E4B8A5。同时讨论了UTF-8编码的字节分布特点,揭示了Unicode是一种变长编码方式。
摘要由CSDN通过智能技术生成

Unicode是类似“U+4E25”或“\u4E25”的编码方式,很多情况下是4个十六进制的数,有时候不止。

Unicode编码系统可分为编码方式和实现方式两个层次:

编码方式:“严”的Unicode是4E25;

实现方式:“严”的UTF-8是E4B8A5。

Unicode的实现方式称为Unicode转换格式(Unicode Transformation Format,简称为UTF),UTF-8(8-bit Unicode Transformation Format)是Unicode一种实现方式。

UTF-8的编码规则很简单,只有二条:

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

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

Unicode和UTF-8之间的转换关系表

UTF-8字节流

00000000 – 0000007F

0xxxxxxx

00000080 – 000007FF

110xxxxx 10xxxxxx

00000800 – 0000FFFF

1110xxxx 10xxxxxx 10xxxxxx

00010000 – 001FFFFF

11110xxx 10xxxxxx 10xxxxxx 10xxxxxx

00200000 – 03FFFFFF

111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx

04000000 – 7FFFFFFF

1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx

例如已知“严”的Unicode是4E25(100111000100101),根据上表,可以发现4E25处在第三行的范围内(0000 0800-0000 FFFF),因此“严”的UTF-8编码需要三个字节,即格式是“1110xxxx 10xxxxxx 10xxxxxx”。

然后,把“严”的Unicode二进制形式(100111000100101),从后向前填入格式中的x,多出的位补0。

最后,“严”的UTF-8编码是“11100100 10111000 10100101”,这是保存在计算机中的实际数据,转换成十六进制就是E4B8A5。

问题:上表的划分为什么是00-7F,0080-07FF等,这样划分的目的是什么?

由于对于单字节的符号,字节的第一位设为0,后面7位为这个符号的unicode码,所以0xxxxxxx能表示的最大范围为00-7F,因为一共有7个x,所以最大为7F(注意:这里的单字节指的是编码后的UTF-8的字节长度为1,而不是Unicode的字节数);

由于对于n字节的符号(n>1),第一个字节的前n位都设为1,第n+1位设为0,后面字节的前两位一律设为10,所以110xxxxx 10xxxxxx能表示的最大范围为0080-07FF,因为一共有11个x,所以最大为07FF,最小的理论上当然不是0080,但是0080以下的应该用单个字节去编码,所以实际上双字节的UTF-8的最小数为11000010 10000000(注意:这里的n字节指的是编码后的UTF-8的字节长度为n,而不是Unicode的字节数)。

综上,这个表实际的产生方式是根据UTF-8的编码规则去确定右边一列,再根据右边一列确定左边一列,最后利用该表来确定某个Unicode字符的UTF-8编码。

另外,从上表可以看出,Unicode是一种变长的编码方式。

p.s. 提供一个在线Unicode和中文的转换工具,注意\u4E25不能写成\U4E25。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值