python2.7关于ascii' codec can't encode characters in position 1-4: ordinal not in range(128)的报错解决方法

作者在mooc上学习python爬虫的时候,运行university ranking.py时,遇到如下报错:ascii’ codec can’t encode characters in position 1-4: ordinal not in range(128)。
经过搜索引擎查询,成功运用其提供的方法解决上述error。
解决方法如下:
1.打开读者python的安装目录,进入Lib目录,找到site.py。
2.打开site.py,找到如下代码:

def setencoding():
    """Set the string encoding used by the Unicode implementation.  The
    default is 'ascii', but if you're willing to experiment, you can
    change this."""
    encoding = "ascii" # Default value set by _PyUnicode_Init()
    if 0:
        # Enable to support locale aware default string encodings.
        import locale
        loc = locale.getdefaultlocale()
        if loc[1]:
            encoding = loc[1]

接着将其中的if 0:改为if 1:
3.保存修改后的py文件,运行报错的程序,得到正确的结果如下(未改进):
python2.7关于ascii' codec can't encode characters in position 1-4: ordinal not in range(128)的报错解决方法_第1张图片
希望对读者有所帮助。
如未能成功解决,可参考下述解决方法(不能保证解决):
http://stackoverflow.com/questions/4237898/unicodedecodeerror-ascii-codec-cant-decode-byte-0xe0-in-position-0-ordinal

你可能感兴趣的:(python)