python一个汉字几个字节_utf-8 下汉字为什么需要三个字节

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

一个字节八个二进制位

unicode 下汉字占用空间为0x4e00到0x9fa5    0010  1110  0000 0000--> 1001 1111 1010 0101

则转化为utf-8为:1110 0010 -10 111000-10 000000 --> 1110 1001-10 111111-10 100101

即:0x00e2 b880            --> 0x00e9 bfa5

utf-8只是改变了unicode的保存形式,提高传输译码效率

python 3.7.2系统使用的是utf-8,但编码转换对应的是unicode;例:ord(汉)=27721,chr(27721)=汉,'汉'对应 unicode为0x6c49,即27721,其utf-8表示为0xe6 0xb7 0x89

如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值