4/02/2008

PythonのUnicodeで混乱

PythonでUnicodeのテキストを扱う場合は, u'テキスト'のように記述するか, 通常のテキストsに対してunicode( s )のようにすれば良い. テキストを読み込んでその一部をWindowsにおいてファイル名に指定するというスクリプトを作成している際に, 一部のテキストでそれができない(UnicodeEncodeErrorでとまる)ことがあった. 確認するとラテン語などが含まれている. このような例外を処理するために, 特定のasciiに対応していない文字をアルファベットに変換して使うことにした.
print unicode( originalText ).replace( u'\xe1', u'a' ).encode( 'shift_jis' )
Unicodeを含む文字列が来た場合, Pythonでは自動的にUnicodeオブジェクトにするため, 最初のunicodeは必要ないかもしれない. http://www.geocities.jp/tan9ent/unicode.html http://www.trickpalace.net/data/charcode/jisx0212.htm

0 comments: