打開碼頭工人實例(例如,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'修復。 –