非 ASCII 文字を含む小さな tmp.py を次に示します。
if __name__ == "__main__":
s = 'ß'
print(s)
実行すると、次のエラーが表示されます。
Traceback (most recent call last):
File ".\tmp.py", line 3, in <module>
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 <undefined>
Pythonのドキュメントには次のように書かれています:
デフォルトでは、Python ソース ファイルは UTF-8 でエンコードされたものとして扱われます...
エンコードを確認する私の方法は、Firefox を使用することです (誰かがもっと明白なことを提案するかもしれません)。Firefox で tmp.py を開き、[View] -> [Character Encoding] -> [Unicode (UTF-8)] を選択すると問題ないように見えます。
私が置く場合:
# -*- encoding: utf-8 -*-
tmp.py の最初の文字列であるため、何も変更されず、エラーが持続します。
誰かが私が間違っていることを理解するのを手伝ってくれますか?