[关闭]
@songying 2018-07-15T15:47:14.000000Z 字数 629 阅读 1004

编码与解码

python高级特性


码位与字节序列

总的来说, 把码位转换成字节序列的过程是编码;把字节序列转换成码位的过程是解码。

  1. str.encode('utf-8') # 使用UTF-8把str对象编码成bytes对象
  2. byte.decode('utf-8') # 使用 UTF-8把bytes对象解码成str对象

utf-8 编码

目前 Web 中最常见的 8 位编码; 3 与 ASCII 兼容(纯 ASCII 文本是有效的 UTF-8 文本)。别名有:“utf_8", "utf8", "U8".

编解码常见问题

UnicodeEncodeError

该异常经常出现在当我们将字符串转化成二进制序列时。
把文本转换成字节序列时,如果目标编码中没有定义某个字符,那就会抛出 UnicodeEncodeError 异常,除非把 errors 参数传给编码方法或函数,对错误进行特殊处理。

UnicodeDecodeError

该异常经常发生在把二进制序列转换成字符串时。

SyntaxError

Python 3 默认使用 UTF-8 编码源码,Python 2(从 2.5 开始)则默认使用 ASCII。如果.py文件编码与python版本不同就会导致该问题。
.py文件头部添加以下代码

  1. # coding: utf-8

《流畅的python》 4.5

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注