【问题标题】:Hebrew in Python request response?Python请求响应中的希伯来语?
【发布时间】:2021-04-17 15:59:16
【问题描述】:

在 python 3 中,我正在向具有以下希伯来语文本的网站发送获取请求:

לימודי הסמכה בטכניון | רישום

但是当我像这样打印响应时:

response = requests.get(url, headers=headers, cookies=cookies)
print(response.content)

我明白了:

\xd7\x9c\xd7\x99\xd7\x9e\xd7\x95\xd7\x93\xd7\x99 \xd7\x94\xd7\xa1\xd7\x9e\xd7\x9b\xd7\x94 \xd7\x91\xd7\x98\xd7\x9b\xd7\xa0\xd7\x99\xd7\x95\xd7\x9f | \xd7\x94\xd7\x96\xd7\x93\xd7\x94\xd7\x95\xd7\xaa

如何解决这个问题并打印正常输出?

这是我的标题,因为它们可能会有所帮助。

headers = {
    'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.16; rv:84.0) Gecko/20100101 Firefox/84.0',
    'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
    'Accept-Language': 'en-US,en;q=0.5',
    'Accept-Encoding': 'gzip, deflate',
    'Connection': 'close'
}

【问题讨论】:

  • 您可能会得到正确答案。看来您的终端(所以 print)无法打印 UTF-8 字符,因此 Python 仅对您的终端使用转义。如果您得到正确的结果,您应该检查浏览器。不要相信控制台(和print
  • 我正在使用 pycharm 终端,我该如何解决这个问题?
  • 首先在您的调试器中,您在 response.text 下看到了什么?你需要找到适合你的编码器
  • edit您的问题包含 response 标题。

标签: python http encoding get hebrew


【解决方案1】:

试试 (response.text).decode('cp856') 或 (response.content).decode('cp856')

【讨论】:

    【解决方案2】:

    您正在显示返回的字节,但数据是以 UTF-8 编码的字节。这可能是您期望看到的吗?

    >>> b"\xd7\x9c\xd7\x99\xd7\x9e\xd7\x95\xd7\x93\xd7\x99 \xd7\x94\xd7\xa1\xd7\x9e\xd7\x9b\xd7\x94 \xd7\x91\xd7\x98\xd7\x9b\xd7\xa0\xd7\x99\xd7\x95\xd7\x9f | \xd7\x94\xd7\x96\xd7\x93\xd7\x94\xd7\x95\xd7\xaa".decode()
    'לימודי הסמכה בטכניון | הזדהות'
    

    【讨论】:

      猜你喜欢
      • 2012-10-05
      • 1970-01-01
      • 2014-12-14
      • 2013-08-07
      • 1970-01-01
      • 2012-01-12
      • 1970-01-01
      • 1970-01-01
      • 2011-09-02
      相关资源
      最近更新 更多