【发布时间】:2019-03-01 11:53:54
【问题描述】:
我通过 python 请求将发布请求发送到 RESTful api,有时我在 r.text、r.content 和requests.utils.get_unicode_from_response(r) 操作中收到以下错误。
我正在使用 python3。
r 是:
r = requests.post(...)
错误信息是:
'ascii' codec can't encode character '\u015f' in position 133: ordinal not in range(128)
(不同请求时\字符和位置信息会发生变化,但消息的其余部分是相同的。)
我试图提取 post 响应的编码信息,他们都告诉我编码是 utf-8,但我无法解码响应,我不明白为什么 utf-8 编码字节会出现 ascii 错误(而不是 utf-8 错误)。
以下是我尝试找出解码方法的方法:
>>> r.encoding
>>> utf-8
>>> chardet.detect(r.content)
>>> {'encoding': 'utf-8', 'confidence': 0.99, 'language': ''}
>>> r.headers
>>> {... 'Content-Type': 'application/json; charset=utf-8 ...}
我应该如何解码这些消息?
【问题讨论】:
标签: python-3.x encoding utf-8 python-requests decoding