python-3.x - Python请求: UnicodeEncodeError: 'charmap' codec can't encode character

标签 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.content.decode('utf-8', 'ignore') 而不是 r.text,但错误与上面相同

我的环境/系统规范:

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

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

谢谢

最佳答案

尝试显式指定文件的编码:

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

关于python-3.x - Python请求: UnicodeEncodeError: 'charmap' codec can't encode character,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49161335/

相关文章:

python - 避免数组迭代中的跳行

python - 从 C 线程调用 Python 代码

用于希腊语单词的 Python 正则表达式

Python:为什么我会收到 UnicodeDecodeError?

python - 将特定单词替换为用户词典,其他单词替换为 0

python - 如果用户输入字符串,则会出现错误

python-3.x - 当对象传递 typeshed 函数时 Mypy 的行为?

python - 如何从字典的值打印 Unicode 表情符号

python-3.x - 在 Python 3 中打开 tar 文件时出现 UnicodeDecodeError

python - 更改自动 str 到 unicode 转换的默认编码