Python

トップ > チップス > Python
2013-01-21, python

Python2.xと日本語

日本語さえ使わないで済むならPythonって便利な言語だと思うのですが…。まず、スクリプトの中に日本語を書き込む場合は、コメント行に「# -*- coding: name -*-」という形式の宣言を入れてあげなければなりません。

#! /usr/bin/python
# -*- coding: utf8 -*-
print u"こんにちは"

上記コードでも、環境に依ってはそのままでは文字出力が出来ずエラーが出ることがあります(特にcronで実行する場合のようなシンプルなシェル環境は要注意です)。この場合、LC_CTYPE環境変数を足すか、マルチバイトの文字列を個別にエンコードしてあげる必要があります(実は、encodeメソッドの中で何をしているのか理解出来ていないのですが、こうすると動きます…)。

export LC_CTYPE=en_US.UTF-8

または、

#! /usr/bin/python
# -*- coding: utf8 -*-
print u"こんにちは".encode("utf8")

Linuxでよく使われる環境変数にLANG、というものもありますが、PythonはどうもLANGの方は考慮してくれないような感じです。GNUのサイトにもLANGは「LC_xxで設定されたものを除く」と記述がありますので、LC_xxの方が影響を及ぼす処理系の方が一般的なのかもしれません(JavaはLANGを使ってましたが、LC_CTYPEも効くのかな)。

参考URL

この記事は役に立ちましたか?