1. ホーム
  2. python

[解決済み] Pythonのソースコードエンコーディングの正しい定義方法

2022-04-29 06:55:22

質問

PEP 263 は、Python のソースコードのエンコーディングを宣言する方法を定義しています。

通常、Pythonファイルの最初の2行は、次のように始まります。

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

しかし、私は多くのファイルが始まるのを見てきました。

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

=> エンコーディング の代わりに コーディング .

では、ファイルのエンコーディングはどのように宣言するのが正しいのでしょうか?

エンコーディング 使用されている正規表現が遅延しているから許可されているのでしょうか?それとも、単にファイルのエンコーディングを宣言する別の形式なのでしょうか?

この質問をするのは、PEPでは エンコーディング について述べています。 コーディング .

どのように解決するのですか?

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

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

"この表現の推奨される形式は次のとおりです。

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

であり、GNU Emacsでも認識されます。

# vim:fileencoding=<encoding-name>

は、Bram MoolenaarのVIM."で認識されています。

つまり、"coding" の部分の前には何でも入れることができますが、100% python-docs-recommendation に対応させたい場合は "coding" (with no prefix) にこだわってください。

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