我有一个Python3代码试图从utf-8编码的文件中读取和打印:
f = open('mybook.txt', encoding='utf-8')
for line in f:
print(line)
当我使用Supreme Text 3构建时,我得到以下错误:
UnicodeEncodeError: 'ascii' codec can't encode character '\u2019' in position 18: ordinal not in range(128)
然而,当我用python3在终端中执行代码时,它可以在文件中工作.
我的构建配置是
{
"cmd": ["/usr/local/bin/python3", "$file"]
, "selector": "source.python"
, "file_regex": "file \"(...*?)\", line ([0-9]+)"
}
如果我将其更改为:
f = open('mybook.txt', encoding='utf-8')
for line in f:
print(line.encode('utf-8'))
然后它会打印utf-8编码的字节字符串(我想这就是发生的情况).
b'Hello\n'
b'\xc2\xab\xe2\x80\xa2\n'
b'Goodbye'
我不知道如何在屏幕上打印unicode字符...
此外,如果我try 按照A python program fails to execute in sublime text 3, but success in bash更改这个env变量,它仍然无法修复它.