论野生技术&二次元

python蛋疼的中文乱码解决方案

我就想不通为什么windows的字符终端用的是cp936而不是utf-8。不过要是他用的是utf-8,那我也没什么博文好写了==于是本菜鸟总结了一下,和广大python菜鸟分享。

当然如果你全部只用英文或数字,那我又没什么博文好写了wwww

当你的脚本在字符终端出现乱码或错误时,按以下办法自检:

  1. 打印的字符是中文字,但是都是没学过o(╯□╰)o:使用了utf-8编码(encode),字符终端代码页是gbk
  2. 打印出的都是“�åȡ��”:你使用了gbk或其他的编码,而终端使用的是utf-8

一般来说:

  1. 网页使用utf-8编码较多(听说以前百度是用的gb2312?),做爬虫并要打印在屏幕上时,要对原始数据做utf-8解码(decode)处理
  2. windows下的大部分文本文件是ANSI编码,读取文件并打屏幕上时做cp936解码

我一般是这么解决的:

这样之后,在代码中如果出现

之类的语句时,需要在字符串后面加上.decode(‘utf-8’)变成

因为你的代码是utf-8编码的

写完了~真开森~

参考资料:

http://hi.baidu.com/mdj_hu/item/4d7d0803d38e62e1fe240de4

http://www.jb51.net/article/26543.htm(不推荐,看完晕过去)

退出移动版