Pythonで日本語を使うには

 Pythonはバージョン1.6からUnicodeをサポートし、 Unicodeと各言語との変換機構であるCodecを本体処理系につけることで、 ASCIIコード以外の文字を使う言語圏にユーザーを拡大しました。 ただし、日本語の各文字コードのCodecは本体にはつかず、 日本語は若干取り残された形になっています。 しかし、 梶山民人さんにより開発された 「JapaneseCodecs」を使うと、日本語の各文字コード (iso-2022-jp、シフトJIS、日本語EUC)とUnicodeとの変換が可能です。 また、このJapaneseCodecsは日本発のPythonモジュールの代表格でもあり、 日本Pythonユーザ会のダウンロードページ からも入手できます。

インストール方法
 次の環境で試しました。
OSPythonJapanese-Codecs
MS-Windows 952.1α11.2.2
MS-Windows XP2.21.4.4
MS-Windows XP2.31.4.10
Linux 2.2.142.0β11.2.2
Linux 2.2.142.1.11.3

UNIXの場合
 上のリンクからJapaneseCodecsをダウンロードし、任意のディレクトリで展開します。 JapaneseCodecsはPython標準のインストール機構に対応しているので、 次のようにコマンドプロンプトから簡単にインストールできます。

SHELL> python setup.py install

Windowsの場合
 Windows向けには、綺麗なインストーラがついた自己解凍EXE形式で配布されているので、 ダウンロードしてエクスプローラでダブルクリックすれば全自動です。 インストールされているPython処理系のパスも自動的に探してもらえ、 とても便利です。

簡単なサンプル
 日本語の各エンコーディングで書かれた文字列と、 Unicodeを相互に変換するのは簡単です。以下の関数は、日本語EUCで書かれた文字列を、 シフトJISに変換する例です。

def es(s):
  u = unicode(s, "japanese.euc_jp")
  return u.encode("japanese.shift_jis")


pep-0263.htmlを見よ!?

 Python 2.3からは、スクリプトの中に日本語など非ASCII文字を使ったときに、 次のような警告メッセージが出るようになりました。

sys:1: DeprecationWarning: Non-ASCII character \x82 in file ???.py
on line ?, but no encoding declared: see http://www.python.org/peps/pep-0263.html
for details

その経緯と対策はその「見よ!」と書いてある http://www.python.org/peps/pep-0263.html の通りで、スクリプトの1行目か2行目に

# -*- coding: sjis -*-

(これはシフトJISの例。日本語EUCの場合はeuc-jpです)と書く必要があります。 ただし、これらのエンコーディングはJapaneseCodecsによって提供されるものなので、 JapaneseCodecsをインストールしていない環境では効きません(今度は文法エラーになります)。

セクションのサブメニューに戻る
(first uploaded 2001/02/06 last updated 2004/01/11)