2012-12-29 14 views
49

私はpython3を切り替えようとしています。私はデフォルトではutf8エンコーディングがあると信じています。すべてのファイルの先頭でエンコード宣言を使用する必要がありますか?Python3でエンコード宣言を使用する必要がありますか?

# -*- coding: utf-8 -*- 
+0

デフォルトで* *何のために? – delnan

+0

前提条件python言語。 –

+0

これは明らかです。つまり、どのような目的のためにUTF-8エンコーディングが想定されていると思いますか?ファイルI/O、ネットワーキング、その他のI/O、ソースコード、多数のメモリ内データ構造など – delnan

答えて

51

デフォルトであるため UTF-8、あなただけがデフォルトから外れたときにその宣言を使用する必要がある、またはあなたが(あなたのIDEやテキストエディタのような)他のツールに依存している場合を使用するようにその情報。

つまり、Pythonに関する限り、異なるエンコーディングを使用する場合にのみ、その宣言を使用する必要があります。

これは、Pythonがソースコードをどのように読み込むかにのみ適用されることに注意してください。印刷、ファイルのオープン、その他のI/O操作には適用されません。 Python、Unicode、エンコーディングの詳細については、Python Unicode HOWTO、またはNed Batchelderの非常に完全なをお読みください。

+19

'# - * - coding:utf-8 - * - 'は、ソースファイルを編集するときに、期待されるエンコーディングに切り替える編集者にとっては、まだ役立つかもしれません。 – pepr

+0

@peprバイトオーダーマークは同じ、いいえ? – endolith

+1

@endolith:UTF-8 BOMは、Microsoftによってもたらされたこの地球上の忌み嫌いです。https://en.wikipedia.org/wiki/Byte_order_mark#UTF-8を参照してください。 –

関連する問題