Python编码解决方案

来源:互联网 发布:sql server 2012 下载 编辑:程序博客网 时间:2024/06/01 09:30

关于Python编码问题最终解决方案
1,使用Python在Windows编程的小伙伴,经常会遇到乱码的问题,下面就Python编码写几个注意点
1,#encoding:utf-8,这个熟悉吧,一般在py文件首行出现,这个意思是整个页面的文字使用utf-8编码,如果不加这个,默认是ASCII编码,这样当你输入汉字注释时,就会报错,为什么了,ASCII嘛只有127个字符,不包括汉字,所以当你有汉字时,务必加上这行设置

2,
import sys
reload(sys)
sys.setdefaultencoding(‘utf8’)
加上这行是干什么了,这行的意思是对当前代码文件中所有字符对象设为utf-8编码,这个问题其实在Python3中已经解决,Python2中还是默认的ASCII编码,

3,print解析,很多时候我们在Python控制台,在print一个中文的字符串时,会出现乱码的现象,为什么会这样,是应为在Windows环境下,使用print,会使用系统默认编码就是gbk或gb2312编码,所以当前字符编码不是对应系统编码时,打出来的就会乱码了,所以这时候要注意对字符安进行转码,要对字符转码,就要知道当前字符的编码,怎么知道当前字符编码了,请看下一条

4,首先Python中想到的判断类型就是isinstance(a,unicode),这个可以判断a字符串是否是unicode类型。但这样还是不够具体,这时候神器上场了,使用pip install chardet 这个库,这个库有个方法可以判断当前字符的类型。这样
print chardet.detect(content)
{‘confidence’: 0.9690625, ‘language’: ”, ‘encoding’: ‘utf-8’}
打印出来的信息可以清楚看到字符类型,这时候是utf-8类型,要想在Windows下print出来,就要进行编码转换了,
print content.decode(‘utf-8’).encode(‘gbk’)
这样就没问题了,哈哈 是不是很好用

1 0
原创粉丝点击