问题描述
- 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编码等来做,而不是设置整个编码格式
时间: 2024-09-20 16:33:20