Python编码问题

py文件默认ascii编码,当字符集为uft-8是,在文件头部加入以下代码防止乱码:

# -*- coding: utf-8 -*-

每次抓取网页数据后,都会出现

'ascii' codec can't encode characters in position 0-3: ordinal not in range(128)

的错误,查出是python编码的问题。

两种解决思路:

1.代码中添加

import sys

reload(sys)

sys.setdefaultencoding('utf8')

2.全局文件修改

在Python安装目录下的Lib/site-packages目录中,新建一个sitecustomize.py文件(也可以建在其它地方,然后手工导入,建在这里,每次启动Python的时候设置将自动生效),内容如下:

importsys

sys.setdefaultencoding('utf-8')#set default encoding to utf-8

然后可以查看到改变已经生效

>>>importsys

>>> sys.getdefaultencoding()

'utf-8'

此时运行程序,如果仍然报告之前的错误,只需要显示地设定输出的编码

prints.encode('utf-8')

就可以看到正确显示。

你可能感兴趣的:(Python编码问题)