字符串编码转换

最早的字符串编码是ASCII码, 它仅仅对10个数字, 26个大小写英文字母以及一些特殊字符进行了编码. ACSII码最多只能表示256个符号, 每个字符只需要占用1个字节.

随着信息技术的发展, 各国的文字都需要进行编码, 于是相继出现了GBK, GB2312, UTF-8编码等, 其中GBK和GB2312是我国制定的中文编码标准, 规定英文字符占用1个字节, 中文字符占用2个字节; 而UTF-8是国际通用的编码格式, 它包含了全世界所有国家需要用到的字符, 其规定英文字符占用1个字节, 中文字符占用3个字节.

注解

Python 3.x默认采用了UTF-8编码格式, 有效地解决了中文乱码的问题.

encode()方法

encode()方法为字符串类型提供的方法, 用于将str类型转换bytes类型, 这个过程也称为”编码”.

string.encode([encoding='utf-8'][, errors='strict'])
  • encoding='utf-8'参数用于指定编码时采用的字符编码, 该选项默认采用utf-8编码. 例如, 如果想使用简体中文, 可以设置为gb2312.
  • errors='strict'参数用于指定错误处理方法, 其可选择的值有:
    • strict - 遇到非法字符就抛出异常(默认值的);
    • ignore - 忽略非法字符;
    • replace - 用?替换非法字符;
    • xmpcharrefreplace - 使用xml的字符引号.

decode()方法

encode()方法相反, decode()方法用于将bytes类型的二进制数据转换为str类型, 这个过程也称为”解码”.

bytes.decode([encoding='utf-8'][, errors='strict'])