Pythonソースコードのエンコーディングを定義する正しい方法 質問する

Pythonソースコードのエンコーディングを定義する正しい方法 質問する

ペップ263Python ソースコードのエンコーディングを宣言する方法を定義します。通常、Python ファイルの最初の 2 行は次のように始まります。

#!/usr/bin/python
# -*- coding: <encoding name> -*-

しかし、次のような内容のファイルがたくさんありました:

#!/usr/bin/python
# -*- encoding: <encoding name> -*-

つまり、encodingではなく と表示されますcoding

ファイルのエンコーディングはどのように宣言すればよいですか?


使ってくださいPython スクリプトで非 ASCII テキストを使用しようとすると、「SyntaxError: 非 ASCII 文字 ...」または「SyntaxError: 非 UTF-8 コードが ... で始まっています」というエラーが発生しますエンコーディング宣言の欠落または誤りによって生じる構文エラーに関する重複した質問を閉じる。一方、この質問は、宣言の書き方やその必要性に関する質問の標準です。

ベストアンサー1

ドキュメントを確認するここ:

「Python スクリプトの 1 行目または 2 行目のコメントが正規表現に一致する場合coding[=:]\s*([-\w.]+)、このコメントはエンコーディング宣言として処理されます」

「この表現の推奨形式は

# -*- coding: <encoding-name> -*-

これはGNU Emacsでも認識され、

# vim:fileencoding=<encoding-name>

これは Bram Moolenaar の VIM によって認識されます。"

したがって、「coding」部分の前には何でも入れることができますが、python-docs-recommendation に 100% 準拠したい場合は、「coding」(プレフィックスなし)に固執してください。

具体的には、Pythonで認識できるものを使用する必要があります使用する編集ソフトウェア(もし何かが必要/受け入れるのであれば)。例えば、codingフォームはGNU Emacsでは(そのままでは)認識されますが、Vimでは認識されません(そうです、普遍的な合意がなければ、それは本質的に縄張り戦争)。

おすすめ記事