python - 读取文本文件时如何修复此 cp950 "illegal multibyte sequence"UnicodeDecodeError?

标签 python python-3.x

我的老师教我们如何使用“exec”,但我得到了一个错误:

UnicodeDecodeError: 'cp950' codec can't decode byte 0xe6 in position 1814: illegal multibyte sequence

我使用:

exec(open("somefile.py").read())

如何解决这个问题?

最佳答案

鉴于这大概是 Python 3 源代码,可能的编码是 UTF-8(它是 Python 3 源代码的标准编码)。

如果是这种情况,将 open("somefile.py") 更改为 open("somefile.py", encoding="utf-8") 将指定显式编码,覆盖区域设置默认值,这应该允许您正确读取它。

对于惯用代码,您还需要使用 with 语句(以保证文件的确定性关闭),使其:

with open("somefile.py", encoding="utf-8") as f:
    exec(f.read())

关于python - 读取文本文件时如何修复此 cp950 "illegal multibyte sequence"UnicodeDecodeError?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49021589/

相关文章:

python - 正则表达式 '^[abc]+$' 未按预期工作

python - Python 3.5.0 中没有名为模块/父模块未加载

python - 从特定列和行开始的现有工作表开始,使用 Openpyxl 写入现有 excel 文件

python:处理变量锁定的优雅方法?

python - 如何为文本小部件设置字符的最大宽度?

python - 程序跳过列表元素

python - 赋值错误之前引用的局部变量 python 3

python - python 2.7 中来自 googlefinance 的 HTTP 错误 404

python - 如何使用 Python 从 HTTP 响应中获取端口号?

python - 从 python cgi 检测 http 请求类型(GET、HEAD 等)