python 无法使用setdefaultencoding方法

毕设工厂 其他问答 1
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

回复

共2条回复 我来回复
  • 代码工厂
    这个人很懒,什么都没有留下~
    评论

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

    0条评论
  • 代码向导
    这个人很懒,什么都没有留下~
    评论

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

    0条评论

发表回复

登录后才能评论