Python的编码和解码

1 什么是编码和解码

  • 编码是指将字符转换为字节流的过程,解码则是相反的操作。Python3字符的默认编码是Unicode。

2 编码的产生

  • 大家都知道在计算机中一个字节(byte)为8个比特位(bit),能表示的最大整数为255(11111111),2个字节可表示的最大整数为65535(11111111 11111111)。
  • 基于上述原理就有了各种编码格式,如ASCII可表示256个字符(英文字母、数字、少部分符号),但中文的范围要更大,因此出现了GB2312、GBK、GB18030等编码用于表示中文,但还不够,比如一些生辟字就表示不了,此时 Unicode 字符集出现了,它将所有的语言都容纳在一起,后续为了在存储和传输数据时节省空间,出现了 UTF8 编码。

3 Python编码的使用

ord()函数获取字符的整数,chr()函数将整数转换为字符

>>> ord('A')
65
>>> chr(65)
'A'
>>> ord('学')
23398
>>> chr(23398)
'学'

十六进制的使用,10的十六进制是a

>>> int('a', 16)
10
>>> chr(10)
'\n'
>>> chr(int('a',16))
'\n'

4 Python编码和解码函数

  • 编码函数:encode(),示例如下:
>>> en_code = '学习'.encode('utf-8')
>>> print('编码结果:', en_code)
编码结果: b'\xe5\xad\xa6\xe4\xb9\xa0'
  • 解码函数:decode(),示例如下:
>>> de_code = en_code.decode('utf-8')
>>> print('解码结果:', de_code)
解码结果: 学习

5 乱码

如果编码和解码所使用的编码不一致就会出现乱码,示例如下:

>>> en_code = '学习'.encode('gbk')
>>> print('编码结果:', en_code)
编码结果: b'\xd1\xa7\xcf\xb0'

>>> de_code = en_code.decode('utf-8')
>>> print('解码结果:', de_code)
解码结果: ѧϰ
  • 7
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值