Python UnicodeEncodeError问题的分析和思考

最近在利用Python获取网络数据的过程中出现一个问题,系统会时不时抛出UnicodeEncodeError的错误,并停止运行,严重影响了其它功能的运行。程序类似下面这样:

#!/usr/bin/env python
# -*- coding:utf-8 -*-
import urllib2
print urllib2.urlopen("http://www.example.com/examplepath").read()

报错信息如下: UnicodeEncodeError: ‘gbk’ codec can’t encode character u’\u2022′ in position XXXX: illegal multibyte sequence

经过检查,发现是因为获取的远程文件中含有”·”这个字符,官方解释是“着重号(BULLET)”,其unicode编码是u+2022,其它关于这个符号的介绍,可以点击这里。也就是说,因为获取到的远程内容中含有着重号这个字符,所以导致程序出现UnicodeEncodeError。 …阅读更多>>