关于中文乱码,老夫已经遇到无数次,遍寻良方,也使出无数种招数。总结一下,费话不多说,python中文乱码的根源只有一个,字符编码不统一!
- 有的数据是爬来的,soup解析的,那很可能会出现ascii cannot decode error. OK,把语言环境它统一成utf-8码再说
import sys
reload(sys)
sys.setdefaultencoding("utf-8")
上述语句编译器可能会报错,不影响,意思是2.7的sys原来没有setdefaultencoding方法,后来reload后,我们自己重申一遍字符环境。
- 有的是load了文本数据,但是里面有非utf-8码,导致文本分析时出错。解决办法只有一个,统一为utf-8码,将非统一字符删掉!
相应文件夹下使用iconv指令
iconv -c -t UTF-8 < textname > textname.utf-8
textname是源文件,输出textname.utf-8
有的是解析后的文本不知是什么编码,但是能看出来为中文。只要能看出来是中文,就可以用.encode(‘utf-8’)转为utf-8来编码文本。
这是最常用的办法,如果发现不行,则参考1和2如果再不行,请联系1756868062@qq.com,本人具有丰富的python中文编码除错经验