请求中的 Unicode 支持



我正在使用requests库从URL读取文本文件,例如:

import requests
response = requests.get('https://example.com/file.txt')
result = list(response.text.splitlines())

但是文件的某些行包含 Unicode 字符(斯拉夫符号)。 然后我无法正确使用此字符串,因为它在读取后似乎已损坏。 在这种情况下,正确的方法是什么?

response.textresponse.encoding提供支持,在没有适当的Content-type: ...; charset=...标头的情况下,它被chardetcharset_normalizer模块内部由请求猜测(并公开为response.apparent_encoding)。(据我所知,这种猜测将在更高版本的请求中弃用。

有时自动检测失败,你会变得胡言乱语(就像你这样做一样),你需要自己弄清楚编码是什么,或者:

  • 执行response.content.decode('some-encoding')
  • 设置response.encoding = 'some-encoding',之后response.text将使用该编码。

最新更新