Pythonでもオレオレ文字コードを実装したい (1)
やりたいこと
最近の弊社は符号化文字集合や文字符号化方式にとても興味があります。
と言うのも、今まではJavaやC#などの言語がメインでテキストファイルのエンコードスキームなどはそこまで気にしなくても動いていたのですが、Pythonで日本語を扱うようになるとそうもいかなくなったと言うのが一つ目。あとはWindows以外のOSが動くコンピュータ*1でいわゆる異体字の問題にぶつかった事があり、それから異体字の扱いや漢字の細かな字形の違いなどに興味が湧いたってのが二つ目。
それで勉強も兼ねて自分で符号化文字集合や文字符号化方式を定義し、それらをPythonで読み書きできるようにプログラムを書きたいなと思っております。 Python内部ではUnicodeとして文字列が扱われているので、読み取った自作エンコードをUnicodeに変換したり、逆にUnicodeから自作エンコードに変換してファイルに書き出す程度の事を考えています。 Unicodeに含まれていない文字を扱うといったことは考えていません。また、ISO 2022で呼び出されるような符号化文字集合を定義するとかも考えてません。あくまでもUnicodeを軸に自作エンコードの変換が出来る程度を考えています。
実用性は考えていないのでアルファベットとひらがなに限定します。
ロードマップ
以下の流れで作業を行います。
Pythonのバージョンは3.4.2を使用します。この記事を書き始めた時の最新バージョンです。
実装の方ですが、codecsモジュール内にAPIなどが整備してあるので適宜基底クラスを継承したりメソッドを追加したりするみたいです。 まだ詳しく調べてません。が、なんとかなると信じています。