即日起在codingBlog上分享您的技术经验即可获得积分,积分可兑换现金哦。

Python编码解决方案

编程语言 fsc2016 14℃ 0评论

关于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’)


这样就没问题了,哈哈 是不是很好用

转载请注明:CodingBlog » Python编码解决方案

喜欢 (0)or分享 (0)
发表我的评论
取消评论

*

表情