python请求,找到正确的编码

python请求,找到正确的编码,python,python-requests,Python,Python Requests,我在阅读未指定字符集的网页时遇到问题。它包含一些非ascii字符,如欧元,我的浏览器可以很好地阅读。在firefox中,在页面信息中,我可以看到使用的编码是“ISO-8859-1”和呈现模式“怪癖模式”。但是,python请求无法真正解码这些非ascii字符,我在尝试将该字符串写入文本文件时遇到了一个错误。例如: result = requests.get(url) result.encoding = 'ISO-8859-1' html = result.text open('textfile.

我在阅读未指定字符集的网页时遇到问题。它包含一些非ascii字符,如欧元,我的浏览器可以很好地阅读。在firefox中,在页面信息中,我可以看到使用的编码是“ISO-8859-1”和呈现模式“怪癖模式”。但是,python请求无法真正解码这些非ascii字符,我在尝试将该字符串写入文本文件时遇到了一个错误。例如:

result = requests.get(url)
result.encoding = 'ISO-8859-1'
html = result.text
open('textfile.txt', 'w').write(html)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
UnicodeEncodeError: 'ascii' codec can't encode character u'\x80'
但我得到的是不可打印的字符,不是欧元


那么,该网页在浏览器中是如何工作的,但请求(也包括urllib/2)无法处理该编码?我也试过使用“utf-8”,但都是一样的。有什么建议吗?

问题是真正的编码是
cp1252
,如果这样做,您可以看到:

 print '\x80'.decode('cp1252')
这一相关答案提供了更多细节:

它与python无关,但这是同一个问题,并给出了发生这种情况的一些背景知识

 print '\x80'.decode('cp1252')