python的编码和解码
在python编程的过程中,编码和解码是经常遇见的问题。
在使用decode()或者encode()函数的过程当中,经常会碰到诸如这样的问题:
表示忽略掉无法转换的字符。
常见的编码有unicode,gb2312,gbk,utf-8等等。
在编码和解码的过程过,使用最频繁的函数就是decode()和encode。
其中decode()函数,表示把字符串从原有编码,解码成unicode中间编码。
encode()函数,表示把字符串从unicode中间编码,转换成目标编码。
举例:
lines = open(input_file_name, 'r').readlines()
for line in lines:
line = line.strip()
line = line.decode('gbk') # 从原有的gbk编码,转换成unicode中间编码
line = line.encode('utf-8') # 从unicode中间编码,转换成UTF-8编码
output_file.write(line + '\n')
'gbk' codec can't decode byte 0xc1 in position 8687: incomplete multibyte sequence
表示在编码或者解码的过程当中,碰到无法编解码的字符。
如果你不希望被这样的错误中断程序的运行,可以加上一个忽略这类错误的参数ignore.
line = line.decode('gbk', 'ignore')
line = line.encode('utf-8', 'ignore')
表示忽略掉无法转换的字符。