web-dev-qa-db-ja.com

Python 3?

Python 3は、デフォルトでソースコードファイルにUTF-8エンコーディングを使用します。すべてのソースファイルの先頭でエンコード宣言を使用する必要がありますか? # -*- coding: utf-8 -*-

86

デフォルトのis UTF-8であるため、デフォルトから逸脱した場合、または他のツール(IDEまたはテキストエディタ)を使用して、その情報を利用します。

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

エディタなどの他のツールも同様の構文をサポートできます。そのため、 PEP 263仕様 では、構文にかなりの柔軟性があります(コメント、テキストcodingはそこになければならず、その後に:または=文字とオプションの空白、その後に認識されるコーデック)。

これは、Python ソースコードを読み取るにのみ適用されることに注意してください。そのコードの実行には適用されません。その他のI/O操作はバイトとUnicodeの間で変換されます。Python、Unicode、およびエンコーディングの詳細については、 Python Unicode HOWTO または非常に徹底的な Pragmatic Unicode talk by Ned Batchelder。

88
Martijn Pieters

いいえ、次の場合:

  • プロジェクト全体では、デフォルトのUTF-8のみを使用します。
  • そして、あなたのIDEツールは各ファイルでそのエンコーディング宣言を必要としません。

はい、もし

  • プロジェクトは異なるエンコーディングに依存しています
  • または多くのエンコーディングに依存しています。

マルチエンコーディングプロジェクトの場合:

一部のファイルがnon-utf-8でエンコードされている場合、ゴールデンルールはUTF-8であるため、Explicit is better than implicit.でエンコードされたファイルでもエンコード宣言を追加する必要があります

参照:

  • PyCharmはその宣言を必要としません:

pycharmの特定のファイルのエンコーディングを設定する

  • vimはその宣言を必要としませんが、:
# vim: set fileencoding=<encoding name> :
1