utf8编码-汉字几字节

29 篇文章 0 订阅
7 篇文章 0 订阅

UTF-8 编码字符理论上可以最多到 6个字节长,但目前全世界的所有文字和符号种类加起来也只要编到 4个字节长就够了。UTF-8 是以 8位(即 1个字节)为单元对原始码进行编码(注意一 点:这里所讲的原始码都是指Unicode码),并规定:多字节码(2个字 节以上才称为多字节)以转换后第1个字节起头的连续“1”的数目(这 些连续“1”称为标记位),表示转换成几个字节:“110”连续两个 “1”,表示转换结果为2个字节,“1110”表示3个字节,而“11110” 则表示4个字节……跟随在标记位之后的“0”,其作用是分隔标记位和 字符码位。第2~第4个字节的起头两个位固定设置为“10”,也作为标 记,剩下的6个位才做为字符码位使用。
   这样,2字节UTF-8码剩下11个字符码位,可用以转换0080~07FF的 原始字符码,3字节剩下16个字符码位,可用以转换0800~FFFF的原始字 符码,由此类推。编码方式的模板如下:

 原始码(16进制) UTF-8编码(二进制)
 --------------------------------------------
 0000 - 007F 0xxxxxxx
 0080 - 07FF 110xxxxx 10xxxxxx
 0800 - FFFF 1110xxxx 10xxxxxx 10xxxxxx
 ……
 --------------------------------------------

   模板中的“x”表示字符码。Ascii码<007F,编为1个 字节的UTF-8码。汉字的 Unicode编码范围为0800-FFFF,所以被编为 3个字节的UTF-8码。


   例如“汉”字的Unicode编码是6C49,6C49在0800-FFFF之间,所以 要用3个字节的模板:1110wwww 10xxxxyy 10yyzzzz。

 6 C 4 9
 0110 1100 0100 1001
 wwww xxxx yyyy zzzz
 wwww xxxxyy yyzzzz
 1110wwww 10xxxxyy 10yyzzzz。
 11100110 10110001 10001001

 E 6 B 1 8 9

“汉”字的UTF-8编码是E6 B1 89

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lazyclough

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值