home changes contents help options

021:文字コードを変換する

2012年8月26日追記 http://d.hatena.ne.jp/yosshi71jp/20090915/1253034464

多分今ならもっと良い方法があるはず。

最初に言っておきますが、日本語の文字コードを相互に完全な形で変換することは不可能です。多分、原理的に不可能だと思います。いろんなコード体系があって、同じコードを使っていたり、その場しのぎの付け焼刃だったりするのです。もし、文字コードを変換しないですむなら、しないほうがいいです。する場合でも必要最小限にして深入りは避けましょう。

さて、ShiftJIS, EUC-JP, JISコードを変換するにはそういう機能を持ったモジュールを使います。 いくつもあります が、多分それぞれ長所と短所があるのだと思います。 ここでは、Windows版のpython2.3に 標準 で入っていた pykf を使ってみましょう。 こんな感じで変換できます。

 >>> import pykf
 >>> s="あいうえお"
 >>> s1=pykf.tojis(s)
 >>> s2=pykf.tosjis(s1,pykf.JIS)
 >>> s1
 '\x1b$B$"$$$&$($*\x1b(B'
 >>> s2
 'あいうえお'
 >>> assert(s2 == s)