python 无法使用setdefaultencoding方法

代码:
import requests
import re
import sys
reload(sys)

sys.setdefaultencoding("gb18030")

type = sys.getfilesystemencoding()

html = requests.get('http://jp.tingroom.com/yuedu/yd300p/')

print html.text

执行报错:
Traceback (most recent call last):
File "C:/Users/sh/PycharmProjects/untitled/regao_yuandaima.py", line 21, in
print html.text
UnicodeEncodeError: 'gbk' codec can't encode character u'\xe7' in position 252: illegal multibyte sequence

百度了下,只要import sys 和reload(sys)执行了,都是能获取setdefaultencoding方法的,但是我这边就不行,求大神指教!

你的默认encoding已经被设置为gb18030,但是requests用的是unicode,所以要从gb18030转成unicode。由于你获得的网页本身就是utf-8,所以以gbk来解码这个网页内容就出错了。所以出现了这个UnicodeEncodeError。如果你不设置setdefaultencoding()就没问题。

你应该用默认的UTF8等编码,获取requests的请求,根据返回内容,你再对应的转换为gb18030编码等来做,而不是设置整个编码格式