python 取得某个文件的encoding
发布网友
发布时间:2022-04-07 12:12
我来回答
共3个回答
热心网友
时间:2022-04-07 13:41
python版本似乎太低了。我印象中国际编码支持似乎是版本高些才支持好些。也许python2.3以后,也许python2.5以后。
给你一个不是很准确的用法。你试试看。也许成。我一直是这么做的。
r=''
s=open("somefile.txt","rb").read() #如果改成read(4096)有可能不成功
for enc in ['euc', 'big-5', 'utf-8', 'sjis', 'gbk', 'gb18030', 'utf-16']:
try:
r=s.decode(enc).encode('sjis')
break
except:pass
就相当于全部试一遍,哪个能用就用哪个。这个方法会存在两个错误。你自己试试。
热心网友
时间:2022-04-07 14:59
要猜文件的encoding,python有一个chardet可以用,在pypi里有它的entry。但是要想100%的猜中是不可能的。
py 2.2里面的codecs里有另一个open函数,可以指定encoding的。
热心网友
时间:2022-04-07 16:34
那你为何不升级一下python呢?
linux 下的file 命令可以检测编码,你用python的os.system()来调用这个命令,就能得到文件的编码啦。
例如
ret = os.system('file aa.txt | grep utf-8')
ret ==0 说明是utf-8编码