Namazu-devel-ja(旧)


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: 全角半角変換



Dan Kogai <dankogai@xxxxxxxxx> wrote:

> 実は Perl 5.8 なら、CP932 から Unicode  
> への変換、機種依存文字の全角/半角化、そしてそれをEUC-JPに落とすということが
> 同一の Perl Script の中で全てできます。

弾さんにお勧めいただいたとおり
msのunicodeをサポートしているものを使えばよいので
そろそろPerl5.8を標準環境の1つとして考えるべきなのでしょう。
taro7_10.plでもPerlのバージョンチェックをして5.8のEncodeを優先して使うように
書いていましたがcodeconv部分を全部PerlのEncodeに任せるつもりにしないと
フィルターの一つだけ対応しても意義がないので他のツールを利用していたところです。

また、単純にPerl5.8はPerl5.005に比べてかなり速いので大分気になっています。
time(1)で2回ほど計っただけなのですがnamazuのmake check全体での時間が3割短く
なりました。(両者ともFreeBSD5.8のpackageを使用しています)
文字コード変換もPerl5.8に全部まかせたらmknmzはかなり速くなる気がします。

現在の"nkf -emXZ1"に頼っているところをPerl5.8にも切り替え可能にするとして
1.MIMEヘッダのデコードもnkf任せになっている
2.Perlがencodeの推測に失敗した際の扱い

の2点が気になっています
1つめはCPANを探しているのですがMIMEデコードのモジュールがたくさんあったので
どれが適しているのか(日本語が使える、namazuの配布に含めてしまってもよい
ライセンス等)で止まっています。

2つめはいろいろサンプルを作りつつゆっくり勉強してみようと思っているところです。

> これを利用すれば、NamazuのindexそのものをUTF-8で作るということも可能なはず
> で、暇があれば取り組んでみたいのですがちょっと手いっぱいで....
Text::KakasiをUTF-8のインプットとアウトプットをできるように改良されたようで
すのでindexがUTF-8にできるようになるのももうすぐのような気がします。

ただし、UTF-8対応は、中国語、韓国語等、多言語のわかちがきが実用になってこない
とメリットがアピールできないかと思います。

また、scripts以下のPerlで書かれたツールは比較的簡単に手直しができるのでしょうが
検索側のnamazu、namzu.cgiがCで書かれているので変更に労力がかかるのではないか
と思います。

indexのコードをeucとutf-8の2種類から選べるようにしておいて移行の準備をして
おくところからはじめるのでしょうね。

臼田幸生