在python处理文本的过程中,经常会有文本字符集转换的情况,
而我们希望用一个方法,不用关心文本原本的字符集是什么样的,直接转换成想要的任何字符集就可以了。

方法一:

import chardet def convert_encoding(data,new_coding='UTF-8'): # 任意字符集转换 encoding = chardet.detect(data)['encoding'] if new_coding.upper() != encoding.upper(): data = data.decode(encoding,data).encode(new_coding) return data 方法二:

import icu def convert_encoding2(data,new_coding='UTF-8'): encoding = icu.CharsetDetector(data).detect().getName() # encoding = chardet.detect(content)['encoding'] if new_coding.upper() != encoding.upper(): # data = data.decode(encoding,data).encode(new_coding) data = unicode(data,coding).encode(new_coding) return data 方法三:

import cchardetdef convert_encoding3(data,new_coding='UTF-8'): encoding = cchardet.detect(data)['encoding'] if new_coding.upper() != encoding.upper(): data = data.decode(encoding,data).encode(new_coding) return data 使用方法:

此处使用方法一

#转换成utf-8convert_encoding(data,'utf-8')#转抱成GBK convert_encoding(data,'gbk')#转抱成GB2312convert_encoding(data,'gbk')