将python2中汉字会出现乱码的事一次性说清楚

一、写的代码模块须要指定编码
   若是代码没有指定coding,python就默认全部的字符为ASCII码,
   ASCII码只支持256个字符,ASCII码不支持中文,因此就报错。
   因此要在代码前写上#coding:utf-8或#coding:gbk
   但通用写上#coding:utf-8

二、python2内部全部编码统一为unicode
  unicode能够处理世界上全部语言的字符。
  utf-8为unicode的一种实现形式,因此须要在代码前写上#coding:utf-8

三、编码转换
   牢记python2内部编码为unicode.
   其它的编码decode()为unicode,再编码encode()为你指定的编码,就不会出现乱码。

四、网页采集时
  代码指定#coding:utf-8
  若是网页的编码为gbk
  须要这样处理:
  html = html.decode('gbk').encode('utf-8')

五、代码前也能够写#coding:gbk,但也要保证你的代码文件的保存格式为gbk.这个在windos下会出现这样的问题。

六、字典等key或值的汉字问题
#coding:utf-8
dict1 ={1:'python周末培训班',2:'咨询010-68165761 QQ:1465376564'}

print dict1
# 这样输出的没有显示汉字,是显示汉字的其它编码

dict2 ={1:'python视频培训班',2:'咨询010-68165761 QQ:1465376564'}
for key in dict2:
    print dict2[key]

七、unicode的汉字编码写到文本文件中
  须要根据文本文件的编码进行转换
  能够encode('utf-8')或encode('gbk')

总结:凡是报错信息中出现的错误包含“ASCII”,就是没有指定汉字编码的问题。 html

相关文章
相关标签/搜索