IT课程分享

Python 中的编码与解码

2018-06-26  本文已影响34人  蓝桥云课

1、一些概念

2、编码格式

Python2 的默认编码是 ASCII,不能识别中文字符,需要显式指定字符编码
Python3 的默认编码为 Unicode,可以识别中文字符

编码格式 字节数 说明
ASCII 1 只有数字、大小写字母和几个标点符号
Unicode 2 / 4 把所有语言统一编到一套编码里,避免乱码
UTF-8 1 - 6 Unicode 进化而来,避免浪费空间

计算机内存中的数据,统一使用 Unicode 编码
数据传输或保存到硬盘上,使用 UTF-8 编码

3、编码和解码

In [43]: '美丽人生'.encode('gbk')
Out[43]: b'\xc3\xc0\xc0\xf6\xc8\xcb\xc9\xfa'

In [44]: b'\xc3\xc0\xc0\xf6\xc8\xcb\xc9\xfa'.decode('gbk')
Out[44]: '美丽人生'

In [45]: '美丽人生'.encode('utf-8')
Out[45]: b'\xe7\xbe\x8e\xe4\xb8\xbd\xe4\xba\xba\xe7\x94\x9f'

In [46]: b'\xe7\xbe\x8e\xe4\xb8\xbd\xe4\xba\xba\xe7\x94\x9f'.decode('utf-8')
Out[46]: '美丽人生'

In [47]: b'\xc3\xc0\xc0\xf6\xc8\xcb\xc9\xfa'.decode('gbk').encode('utf-8')
Out[47]: b'\xe7\xbe\x8e\xe4\xb8\xbd\xe4\xba\xba\xe7\x94\x9f'

上面这种以 b 开头的就是字节码,一个斜杠就是一个字节
可见,一个常用汉字用 GBK 格式编码后占 2 个字节,用 UTF-8 格式编码后占 3 个字节
因为存储或传输时,也用UTF-8 编码,所以一个汉字占的空间就是 3 个字节
字符串长度和字节码长度:

In [61]: len('美丽人生')
Out[61]: 4

In [62]: len(b'\xe7\xbe\x8e\xe4\xb8\xbd\xe4\xba\xba\xe7\x94\x9f')
Out[62]: 12

4、Python3 的默认编码

学习Python:python精品项目课程

更多趣味实验可以直接访问实验楼,在线实验环境操作方便,为大家定期更新最佳实验!(●'◡'●)

扫一扫

课程咨询,欢迎添加班主任微信:

i扫一扫
上一篇下一篇

猜你喜欢

热点阅读