ダウンロードしたコードの一部のソース ファイルには、次のヘッダーがあります。
# -*- coding: utf-8 -*-
私は utf-8 エンコーディングが何であるかを知っていますが、なぜそれが Python ソース ファイルのヘッダーとして必要なのですか?
次のように、ASCII以外の文字をコードで使用する必要がある場合は常に次のようになります。
ă
通訳は彼がその文字を理解していないと不平を言うでしょう。
通常、これは定数を定義するときに発生します。
例:x.pyに追加
print 'ă'
次に、Pythonコンソールを起動します
import x
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "x.py", line 1
SyntaxError: Non-ASCII character '\xc4' in file x.py on line 1,
but no encoding declared;
see http://www.python.org/peps/pep-0263.html for details
常に UTF-8 を使用し、エディターも UTF-8 を使用していることを確認してください。Python 27 を使用している場合は、次のように Python スクリプトを開始します。
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
これは、Python と UTF-8 に関する Nick Johnson による優れたブログ投稿です。
http://blog.notdot.net/2010/07/Getting-unicode-right-in-Python ところで、この投稿は彼が使用できるようになる前に書かれたものです。
from __future__ import unicode_literals
ASCII 以外の文字を使用する場合。たとえば、ソースをノルウェー語でコメントすると、文字 ØÆÅ が .py で発生すると、エラーが発生し、「コンパイル」されません。
テキストが読み書きされるときはいつでも、エンコーディングが機能します。いつも。Pythonインタープリターは、ファイルを理解するために、ファイルをテキストとして読み取る必要があります。エンコーディングを処理せずに回避できる唯一の状況は、ASCII範囲の文字のみを使用する場合です。この場合、インタプリタは世界中のほぼすべてのエンコーディングを使用でき、ほとんどすべてのエンコーディングがこれらの文字を同じバイトにエンコードするため、正しく処理できます。
ファイルにASCII以外の文字が含まれているという理由だけで使用しないcoding: utf-8
でください。有害な場合もあります。これは、ファイルがどのエンコーディングであるかをPythonインタプリタに伝えるためのヒントです。テキストエディタを設定していない限り、テキストエディタはファイルをutf-8に保存しない可能性があります。だから今あなたがPythonインタープリターに与えたヒントは間違っています。
したがって、ファイルがutf-8でエンコードされている場合に使用する必要があります。Windows-1252でエンコードされている場合は、などを使用する必要がcoding: windows-1252
あります。