V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
imes
V2EX  ›  问与答

[求助] utf8 编码问题(http-requests/content)

  •  
  •   imes · 2021-09-09 16:41:19 +08:00 · 867 次点击
    这是一个创建于 1171 天前的主题,其中的信息可能已经有所发展或是发生改变。

    事情是这样的,我有个 esp8266,用 arduino/c-like 或者 micropython 来 get 一些内容,都是一个结果:response 无法解析成文字。网站是和天气( https://devapi.qweather.com/v7/weather/now? ),使用 urequests 来 get 一些内容,一直无法解析成.text 、.json,我今天突发奇想,打印出来了.content,才发现编码有问题。使用 windows amd64 的 python 3.8 跑出来的 content 和使用 micropython 跑出来的 content 对不上,但是网站确实是用 utf-8 的,试了一下其他网站也没有问题,就和天气的不对劲。

    求懂行的各位给看看,想知道有没有解决方法,我没有这方面的基础。

    使用 windows amd64 的 python 3.8 跑出来的 content 如下
    {"code":"200","updateTime":"2021-09-09T15:57+08:00","fxLink":"http://hfx.link/1tr31","now":{"obsTime":"2021-09-09T15:47+08:00","temp":"25","feelsLike":"25","icon":"101","text":"Cloudy","wind360":"180","windDir":"S","windScale":"3","windSpeed":"18","humidity":"81","precip":"0.0","pressure":"1002","vis":"10","cloud":"91","dew":"22"},"refer":{"sources":["QWeather","NMC","ECMWF"],"license":["no commercial use"]}}

    使用 micropython 跑出来的 content 如下
    b'\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\x00m\x8f\xcdn\x830\x10\x84_%\xdaki0PZ\xc2\x95\xb6\xa7\xa4R\x95H9T9P{\x11V\xc0F\xfei\x88"\xde\xbdk\x92\xa8\x97J\x96\xb5\xdf\xec\xecx}\x01\xae\x05B\t)c\x10\x81\x1fD\xedp'\xfb\xab\x94&\x8flEg\x97\xe4e\xfe\xf2\xc0\x8arv5\xe3Z\xaa#9Z\xe7\x862\x8e\xdbf\v\xa4\xc4\x893YB\x06\xa5OP^@\x7f\xdb\x7f\xa3\x9e\xfe\xa2\x1c\xf6C\xe8\xe7!\x16\xb1\xb3ky\xc4\xbb \xb9VT',\x99\x9d\xa3#\xa8:\xed\xc5\x99\xf8$\x95\xc8\x9eY\xe8\x17\xec\xc6\xaf\xd2\x10oo\xb4\xe5u\x17\xb2\xb2;\x0f\x88b\xf6\x93\xd0\xfa^\n\xe9\xce\xc4E\x88\x1f\x0cr\x19VaKvEk\xbd\xc1\xf9y\x96\x92\xf2#\xed\x0cT\xf2\xb0\x03\xc1*\x0c\n<\x85}S\x98"0\xd8\xa0\t?\xb7\xda\x1b\x8e4\xf0\x05\x9f{\xac]Kr\x04\x1f\x9b\x8a\xee\xb7j\xb3\x7f\x87C\x04\x9d\xe4\xa8,\x06\x93\xd2\x0b\xae\xfb\x1e\r\x97u\xb7\xf0$\x1e\xa6\xe9\x17\x18\xcd\x18\xae\x9c\x01\x00\x00'

    第 1 条附言  ·  2021-09-09 17:30:26 +08:00

    和风天气默认开启gzip,而esp系列因为性能原因,默认不使用。在url里面加上gzip=n即可解决。

    2 条回复    2021-09-09 17:43:23 +08:00
    ch2
        1
    ch2  
       2021-09-09 17:39:30 +08:00
    为啥不看响应头🙀
    imes
        2
    imes  
    OP
       2021-09-09 17:43:23 +08:00
    @ch2 #1 我眼瞎了,直接上手一把梭,现在把 gzip 关了才好,写程序还是不能一把梭😭
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1718 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 16:46 · PVG 00:46 · LAX 08:46 · JFK 11:46
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.