zoukankan      html  css  js  c++  java
  • python 带BOM头utf-8的响应解码

    接口响应编码格式为带BOM头utf-8。直接获取响应的text出现乱码。

      

    '''
    dinghanhua
    2018-11
    requests text与content,指定响应的encoding
    '''

    api = 'http://testapi'
    response = requests.get(api) print(response.text)

     乱码

    解决方式:

    1 获取content再用utf-8-sig decode。

    2  指定响应的编码格式为utf-8-sig。再获取text。

    1 指定response的编码格式为utf-8-sig

    #utf-8-sig解码
    response.encoding = 'utf-8-sig'

    print
    (response.text)
    print(response.json()) #直接转成json

    2 获取content,再utf-8-sig解码

    print(response.content)  #二进制

    前3个字符就是BOM头

    import json

    r = response.content.decode('utf-8-sig') print(json.loads(r))

    也可以去掉BOM头之后用utf-8解码

    #去掉bom头3个字符
    r = response.content[3:].decode('utf-8')
    print(json.loads(r))

    如果不去掉BOM头用utf-8解码,但json.loads()会报错

    r = response.content.decode('utf-8')
    print(r.decode('utf-8'))
    print(json.loads(r.decode('utf-8')))

  • 相关阅读:
    父子组件例子
    指令
    使用git将代码推到coding
    vue生命周期
    vue 父子组件
    vuex
    使用vue与element组件
    vue02
    使用vue
    telnet 使用
  • 原文地址:https://www.cnblogs.com/dinghanhua/p/10014344.html
Copyright © 2011-2022 走看看