Pythonは、テキストデータを表現するためのUnicode仕様をサポートしています。Pythonの文字列型は、Unicode標準を使用して文字を表現し、Pythonプログラムがこれらの異なる可能性のある文字すべてを扱うことができます。
Unicodeは、人間の言語で使用されるすべての文字をリストし、各文字に一意のコードを割り当てることを目指す仕様です。Unicode仕様は、新しい言語や記号を追加するために継続的に改訂と更新が行われています。
PythonはUTF-8に収束しています。PythonはMacOSでは数バージョンにわたってUTF-8を使用しており、Python 3.6ではWindowsでもUTF-8を使用するようになりました。Unixシステムでは、LANGまたはLC_CTYPE環境変数を設定していない場合、デフォルトのエンコーディングは再びUTF-8になります。
PythonでUnicode(UTF-8)のファイルを読み書きするときは、ファイルを開くときにエンコーディングパラメータを指定することが重要です。これにより、Pythonはファイル内の文字をどのように解釈するかを知ることができます。
Python 2では、ソースコードヘッダーで次のように宣言できます:
# -*- coding: utf-8 -*-
これはPEP 0263で説明されています。一方、Python 3では、UTF-8がデフォルトのソースエンコーディングになっており、Unicode文字をどこでも使用できます。
以上がPythonとUTF-8の関係についての基本的な情報です。この記事がPythonとUTF-8の理解に役立つことを願っています。