Pythonでの日本語(つうか多国語)の扱い方
PyJUGの日本語関連にまとめられていますがあらためて整理。
■ site.py を編集しないとコンソール入出力でコケる
デフォルトエンコーディングの指定をしないと ASCII の範囲から外れる文字の入出力でエラーが出る。IDLE を使えば出力の方はごまかせるようですが raw_input 等での入力の方は unicode でなくローカルなコードのままなのでいずれにしろ何らかの方法で encode する必要あり。
ソースで直接コーデックを指定するより unicode() 等コーデック指定無しのデフォルトのまま使えるようデフォルトエンコーディングを指定してしまった方が、ソースの流用が効いて良い感じ。
■ 文字列リテラルは u"" で書く
もちろんソースコードのエンコーディング指定は必須。
また web やメール等、文字コードが不定な場所を経由するソースにはエンコーディング指定を明示的に書き込まない(つまりそのまま BOM 付き utf-8 に変換すれば実行出来る形に)方が後々の手間を省けそう。
■ プログラムの 外部→内部 には decode()、内部→外部 には encode()。
外部のテキストデータとのやりとりは入出力の時点で(内部が Unicode になるよう)変換すること。
またプログラムが自己目的で使うテキストファイルは utf-8 にした方が、出力したデータごと他所に持って行く場合にも便利。(但し BOM には注意)
と、こんなもんでいいのかな?
まあ♥(ハートマーク)一つ満足に扱えない文字コードは日本語を記述するにも用が足りないですし。その点からも基本は utf-8 でしょう。
« はじめてのこころぐ | トップページ | planetarian ~ちいさなほしのゆめ~ / Key »
「パソコン・インターネット」カテゴリの記事
- 井の中の蛙大海を知らず されど空の高さ知る(2008.01.09)
- 俺の輝いてたあの時代
いつもいつもいつも一緒だった
小さな宇宙のような箱(2007.12.21) - 書を捨て Web に出よう !(2007.10.28)
- 「書籍・雑誌」TimeLine(2007.10.28)
- 初音ミクの消失(2007.10.21)
「Python」カテゴリの記事
- from __future__ import hatsune(2008.09.15)
- Pygame1.8.1出たよ!(2008.08.02)
- それは kokoro.py と言うプログラム(2008.04.27)
- smf2txt.py ‐ SMF をテキストに(2008.04.09)
- 2007年下半期ライトノベルサイト杯結果と、同じのに投票した方々(2008.01.28)