Python任意文字セット変換
pythonでテキストを処理する過程で、テキストの文字セットを変換することがよくありますが、テキストの元の文字セットがどのようなものなのか気にせず、任意の文字セットに直接変換すればいい方法を望んでいます.
方法1:
方法2:
方法3:
使用方法:
ここでの使用方法1
方法1:
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
方法2:
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
方法3:
import cchardet
def 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
使用方法:
ここでの使用方法1
# utf-8
convert_encoding(data,'utf-8')
# GBK
convert_encoding(data,'gbk')
# GB2312
convert_encoding(data,'gbk')