这是一个带有非ASCII字符的tmp.py:
if __name__ == "__main__":
s = '?'
print(s)
运行它我收到以下错误:
Traceback (most recent call last):
File ".\tmp.py", line 3, in
print(s)
File "C:\Python32\lib\encodings\cp866.py", line 19, in encode
return codecs.charmap_encode(input,self.errors,encoding_map)[0]
UnicodeEncodeError: 'charmap' codec can't encode character '\xdf' in position 0: character maps to
Python文档says:
By default, Python source files are treated as encoded in UTF-8…
我检查编码的方法是使用Firefox(也许有人会建议更明显的东西).我在Firefox中打开tmp.py,如果我选择View-> Character Encoding-> Unicode(UTF-8),它看起来没问题,这就是它在这个问题上面看起来的方式(wth?
?符号).
如果我把:
# -*- encoding: utf-8 -*-
作为tmp.py中的第一个字符串,它不会改变任何内容 – 错误仍然存??在.
有人可以帮我弄清楚我做错了什么吗?