Python请求:UnicodeEncodeError:' charmap'编解码器无法对字符进行编码

时间:2018-03-07 21:16:31

标签: python-3.x python-unicode

我抓取了一个网页(此处代码更改了名称),如下所示:

import requests
r = requests.get('https://www.samplewebpage.com')

然后我尝试将r.text写入文件,如下所示:

f = open ('filename', 'w')
f.write(r.text)
f.close()

我收到错误:

UnicodeEncodeError: 'charmap' codec can't encode character '\u20b9' in position 158691: character maps to <undefined>

r.encoding显示UTF-8。如何解决以上问题?

还试过以下内容: - 几乎没有其他随机网页,我能够运行代码,大多数没有任何错误。 - 而不是r.text使用r.content.decode(&#39; utf-8&#39;,&#39;忽略&#39;),但是与上面相同的错误

我的环境/系统规格:

  • Python 3.6.4
  • Windows 8.1 Pro,64位
  • https://www.python.org安装的默认IDLE。
  • 也尝试使用Atom中的脚本,但同样的错误。

怀疑控制台编码不匹配,因为我在这个论坛上读到了另一个类似的问题,我再次确认Atom控制台设置为UTF-8,虽然我认为控制台编码不是问题,因为我想写一个文件。

由于

1 个答案:

答案 0 :(得分:2)

尝试明确指定文件的编码:

f = open ('filename', 'w', encoding='utf8')
f.write(r.text)
f.close()