打开码头工人实例(例如,docker run -ti ubuntu:16.04
)中,创建Python文件a.py
POSIX语言环境,UnicodeDecodeError错误
# -*- coding: utf-8 -*-
a = 'ö'
和r.py
with open('a.py') as f: exec(f.read())
当执行python r.py
,所有是文件。当使用python3
,然而,人们得到可怕的
Traceback (most recent call last):
File "r.py", line 2, in <module>
exec(f.read())
File "/usr/lib/python3.5/encodings/ascii.py", line 26, in decode
return codecs.ascii_decode(input, self.errors)[0]
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 31: ordinal not in range(128)
奇怪的是,我只能在码头工人重现此。
任何可能出现错误的提示,以及如何解决它? (请注意,我只能修改r.py
。)
谢谢!我注意到用python3和'a = {}; ('a.py','rb')作为f:exec(f.read(),a)'(将a.py的内容存储在一个字典中),这会给出错误“ERROR - 无法将数据写入流:<_io.TextIOWrapper name =''mode ='w'encoding ='ANSI_X3.4-1968'>'。通过设置环境变量'export PYTHONIOENCODING = UTF-8'修复。 –