codecs
常用函数
-
codecs.encode(obj, encoding='utf-8', errors='strict')
使用为 encoding 注册的编解码器对 obj 进行编码,类似str.encode()方法。
>>> codecs.encode("你好,world",encoding='ascii') Traceback (most recent call last): ... UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-1: ordinal not in range(128) >>> >>> codecs.encode("你好,world",encoding='ascii',errors='replace') b'??,world'
-
codecs.decode(obj, encoding='utf-8', errors='strict')
使用为 encoding 注册的编解码器对 obj 进行解码,类似str.decode()方法。
-
codecs.lookup(encoding)
在 Python 编解码器注册表中查找编解码器信息,并返回一个
CodecInfo
对象。>>> import codecs >>> >>> gbk = codecs.lookup('gbk') >>> gbk.encode("你好,world") (b'\xc4\xe3\xba\xc3,world', 8) >>> codecs.lookup('uuuu') Traceback (most recent call last): ... LookupError: unknown encoding: uuuu
CodeInfo对象属性/方法 描述 name 编码名称 encode/decode 无状态的编解码函数 streamwriter/streamreader 流式写入器和读取器类或工厂函数。 incrementalencoder/incrementaldecoder 增量式的编码器和解码器类或工厂函数。 >>> utf8 = codecs.lookup('utf-8') >>> utf8.name "utf-8"
-
codecs.getencoder(encoding)
查找给定编码的编解码器并返回其编码器函数。
>>> u8_encode = codecs.getencoder("utf8") >>> u8_encode("你好,world.") (b'\xe4\xbd\xa0\xe5\xa5\xbd,world.', 9)
-
codecs.getdecoder(encoding)
查找给定编码的编解码器并返回其解码器函数。
>>> b_data, _ = u8_encode("你好,world.") >>> u8_decode = codecs.getdecoder("utf-8") >>> u8_decode(b_data) ('你好,world.', 13)
-
codecs.open(filename, mode='r', encoding=None, errors='strict', buffering=1)
使用给定的 mode 打开已编码的文件并返回一个
StreamReaderWriter
的实例,提供透明的编码/解码;与内置函数open类似。 -
常用的errors字符串
errors字符串 描述 strict 默认,出现编解码错误抛出 UnicodeError
ignore 忽略错误格式(编解码出错)的数据 replace(仅适用文本编码) 编码错误替换为 '?'
注意:文本编码—>用于将Unicode字符串编码为字节串的编码器。