Pythonで文字コードを指定して日本語を扱う方法

Pythonで日本語を扱う方法について説明します。

文字コードを指定する方法

Pythonにおける文字列はasciiコードでエンコードされるため、日本語のようなマルチバイト文字があるとエラーとなってしまいます。

例えばエンコーディングを指定せずに日本語を扱うと以下のようなエラーが出る可能性があります。

SyntaxError: Non-ASCII character '\xe3' in file sample.py on line 5, but no encoding declared;

日本語をプログラム中で扱う場合には、プログラムの先頭で文字コードを指定し、指定した文字コードでファイルを保存する必要があります。

Pythonプログラムの文字コードを指定し日本語(UTF-8)を扱えるようにするには、プログラムの1行目もしくは2行目に次のように記述します。

# coding: エンコーディング名
# coding=エンコーディング名
# -*- coding: エンコーディング名 -*-

上記3つのどの書き方でも正常に動作します。

文字コードをUTF-8に設定する

文字コードをUTF-8に指定する例を示します。PythonではUTF-8が最もよく使われているようです。

# coding: UTF-8

エンコーディング名は大文字(UTF-8)でも小文字(utf-8)でも構いません。ファイルを保存する際はプログラムで指定した文字コードで保存してください。

この他にも代表的な日本語のエンコードとしてShift_JIS、EUC-JIS、 ISO-2022-JPなどがあります。


イベント