
python3 区分了 unicode str 和 byte arrary,并且默认编码不再是 ascii
关于编码问题的终极解决方案:
在python的Lib\site-packages文件夹下新建一个sitecustomize.py
文件,输入:
import sys
sys.setdefaultencoding('gb2312')
这里要注意一点是:这里面你可以设置GBK或者utf8 或者其他类型的编码格式,不一定非要gb2312,主要看你 *** 作的环境需要什么编码格式
自然是文件编码的问题,文件读取utf-8格式,建议使用codecs模块,不用安装,直接import就行,使用fp = codecs.open(filename,'r','utf-8')读取utf-8编码文件,python自带的open是默认gbk的。此外,建议文件都使用utf-8格式,gbk实在是windows的遗留问题,utf-8本来可以一统天下,就是windows一直不改,才使得windows下文件编码一直很麻烦。你试试下面的代码
#!/usr/bin/env python# -*- coding:utf8 -*-
import urllib2
req = urllib2.Request("http://www.baidu.com/")
res = urllib2.urlopen(req)
html = res.read()
res.close()
html = unicode(html, "gb2312").encode("utf8")
print html
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)