PDAで中国語辞書_03

さて、PDAで使える中国語辞書データの作成手順の続きを書いていこうと思う。
前回では大まかな作業手順と利用するソフトウェアについて書いた。
今回は、その作業手順上どのソフトを何のために使うのかを解説しよう。


まずソフトウェアの名称中にperlという単語が入っているものが3つある。これらはテキストデータの検索・置き換え処理に使う。そのうちのActivePerl 5.005_03(以下5.0)とjperl for MS-Windows(以下jperl)は対である。5.0は2バイト文字(日本語)が正しく処理できない場合があるため、その改良のために作られたパッチがjperlである。パッチと言っても寒いときズボンの下にはくそれではない。


残りのActivePerl 5.8.6.811(以下5.8)だが、これは5.0のバージョン違いのように見える。実際その通りなのだが、中身はまったく別物といってよいほど進化しており、これはそのままUnicodeデータの処理ができる(つまりパッチ無しで日中混在文が処理できる)のだ。


それでは5.8だけを使えばよいのでは?と思った方、基本的にはその通りなのだが具合が悪いときもある。5.8で処理をする際内部処理上テキストデータはいったんUTF-8に変換されるのだが、そのときUnicodeで定義されている文字以外の文字を処理しようとするとエラーがでてしまうのである。テキストデータに一部制御コードが埋め込まれているようなデータの場合、処理が止まってしまう。この点jperlは融通がきく。とにかく最後まで処理を行ってくれるのだ。


制御コードが埋め込まれたデータを処理することがあるのか?あるのである。昔々Windowsは手軽に多言語処理できる環境ではなかった。しかし日本語Windowsで他の言語(中国語)を使いたいという人は後を絶たない。そこで考え出されたのが日本語の文字コード(Shift-JIS)の体系の中で擬似中国語コードの体系を作り、専用フォントを使って中国語表示させようというものであった。つまり日本語環境で日本語用フォントを使うと文字化けしたようになるが専用フォントを使うと中国語として読める、というものである。


しかしながらこれには欠点があった。Shift-JISで定義できる文字数には限りがあり、未定義領域に中国語漢字を押し込もうとしてもそのスペースが無かったのである。それに対してとられた解決策はすでに日本語として使用済みの部分に無理やり中国語漢字を割り当てる、という方法であった。よってこの方法で日中混在文を作ろうと思ったら日本語フォントと擬似中国語フォントの2つを用意して、それぞれの文字に対してそれに合ったフォント指定をする必要があるのである。そしてここからここまでが擬似中国語コードを想定しているので、専用フォントを使ってくださいね、という意味で制御コードが埋め込まれたデータがこの世には存在するのである。

そういった、昔ながらの方法の日中混在文を取り扱うときにjperlは必要となるのである。


長くなるので続きはまた後日!
(文字だらけで読んでる人はいないと思うが)