Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2176710
  • 博文数量: 104
  • 博客积分: 206
  • 博客等级: 入伍新兵
  • 技术积分: 1829
  • 用 户 组: 普通用户
  • 注册时间: 2012-09-12 10:24
个人简介

效字当先,以质为本。测试开发入行十余年,辉煌过,迷茫过,持续探寻人生的激情和前进的步伐!好好生活,认真工作!

文章分类
文章存档

2024年(1)

2019年(2)

2018年(4)

2017年(7)

2016年(3)

2015年(14)

2014年(33)

2013年(31)

2012年(9)

分类: Python/Ruby

2015-11-27 11:57:47

关于 python 编码问题的总结:

1、写的代码模块需要指定编码
   如果代码没有指定coding,python就默认所有的字符为ASCII码,
   ASCII码只支持256个字符,ASCII码不支持中文,所以就报错。
   所以要在代码前写上#coding:utf-8或#coding:gbk
   建议你的代码统一写成这样:

点击(此处)折叠或打开

  1. #coding:utf-8
  2. import sys
  3. reload(sys)
  4. sys.setdefaultencoding('utf-8')

2、python2内部所有编码统一为unicode
  unicode可以处理世界上所有语言的字符。
  utf-8为unicode的一种实现形式,所以需要在代码前写上#coding:utf-8


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


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


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


6、字典等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]


7、unicode的汉字编码写到文本文件中
  需要根据文本文件的编码进行转换
  可以encode('utf-8')或encode('gbk')


总结:凡是报错信息中出现的错误包含“ASCII”,就是没有指定汉字编码的问题。
阅读(3788) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~