首页 新闻 搜索 专区 学院

python 字符串解码 问题

0
悬赏园豆:50 [已解决问题] 解决于 2016-12-20 14:41

使用chardet.detect()进行解码,发现解码错误

显示是utf8实际上是gbk。导致我用uft8去decode的 时候 出现乱码

不知道大家有没有碰到这种问题。

NashZhou的主页 NashZhou | 初学一级 | 园豆:40
提问于:2014-12-29 13:38
< >
分享
最佳答案
0

参考园子里的一篇博文Python信息抽取之乱码解决

OK,我采取了unicode方法,先对这个字段进行解码,在进行编码

if chardet.detect(name)['encoding'] == 'GB2312':
  name = unicode(name,'GB2312','ignore').encode('utf-8','ignore')
elif chardet.detect(name)['encoding'] == 'Big5':
    name = unicode(name,'Big5','ignore').encode('utf-8','ignore')
elif chardet.detect(name)['encoding'] == 'ascii':
    name = unicode(name,'ascii','ignore').encode('utf-8','ignore')
elif chardet.detect(name)['encoding'] == 'GBK':
    name = unicode(name,'GBK','ignore').encode('utf-8','ignore')
elif chardet.detect(name)['encoding'] == 'EUC-JP':
    name = unicode(name,'EUC-JP','ignore').encode('utf-8','ignore')
else:
     name = '未知'
收获园豆:50
dudu | 高人七级 |园豆:38304 | 2014-12-29 13:47

没用,还是一样。detect识别的时候就出错了

NashZhou | 园豆:40 (初学一级) | 2014-12-29 14:21
其他回答(1)
0

字符集探测没有可靠的方案的,字符集设计的时候就没有考虑过这个。IE及Chrome等浏览器都有字符集探测功能,但是仍然会遇到乱码情况。

涉及到字节反编码为字符串的地方多多少少都需要加上手动指定字符集作为辅助方案的。

天方 | 园豆:5266 (大侠五级) | 2015-01-01 11:04
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册