Namazu-devel-ja(旧)


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

Re: 全角半角変換



寺西です。

コード変換に関しては、次のように個人的には考えています。

おそらく、次の 3 つのスタイル(それ以外もあるでしょうが)で開発する
ことができると思います。

1. 従来通り全環境で様々なコード変換プログラムを使って作る。
2. 5.8 以降は Encode を使い、それ以前は様々なコード変換プログラムを
   使って作る。
3. 5.8 以降に限定し、Encode を使う。

それぞれ一長一短があります。perl 5.8 環境に限定できるほど、普及
しておれば、3 が最も良いのですが現状はまだ 5.8 に限定はできない
と思います。これは、私も弾さんも同意見ですね。

1 は現状で、きちんと様々なコードに変換できる良いツールがないため、
いろいろなコード変換ツールを使わなければならないという不便さが
あります。また、ツールごとの不具合やバージョンの違いによる動作の
違いなどいろいろと問題があります。

2 は、1 から 3 への移行期間中と考えることもでき、各環境にとって
もっとも良い処理が選択されてできるのでよさそうに見えます。
しかし、1, 3 をあわせたようなものだけに、コードが複雑になり、
メンテナンスが大変です。
perl のバージョンにより処理が異なるため、結果も異なってしまうかも
しれないというのも困りものです。

ということで、できれば 2 にしたいが、できる限り処理を切り分け
たことで結果に差がでず、それでいてコードもできるだけ複雑にならない
ようにしたいと思います。(無理な要求でしょうけれども。)

という長い前置きをしておいて...。

Dan Kogai wrote:
> 
> On Wednesday, June 4, 2003, at 09:46  PM, Tadamasa Teranishi wrote:
> > まだ、Perl 5.8 に環境を限定することはできないだろうというのが、
> > 悩ましいところです。
> 
> そのへんは、環境変数 $] をチェックして、これが 5.008 以上なら 5.8 feature
> を有効にするという方法で回避することに当然なるでしょうね。

いや、これは

 > 実は Perl 5.8 なら、CP932 から Unicode  

という断りがあるので書いたもので、5.8 に限って使えるというのよりは、
全ての環境で統一的にできるのが良いので、悩ましいところだということ
です。

> > こちらは Perl 5.8 に限定されたのでしょうか。それとも、それ以前の
> > バージョンでも動作するように作られているのでしょうか。
> 
> 当然 5.8 以前のものとも互換です(下位互換性のcheckは、FreeBSD-4-STABLE
> の/usr/bin/perl、すなわち
> 5.00503 で行っております)。これは Text::Kakasi のメンテを引き
> 継ぐ以上、当然ですから。

こちらは確認です。(当然そうなっているとは思いましたが、念のため)

> > それ以前のバージョンでも作られているのなら、是非ともそのルーチン
> > を持ってきたいですね。様々な漢字コード変換ツールを使うのは、
> > それだけでトラブルの元ですから。
> 
> 参考までに、こんな感じでやってます。
...
> あとは $HAS_ENCODE に従って、処理を切り分けています。

判別部分よりは、
$HAS_ENCODE で処理をどのように切り替えているのかが、知りたい
ところです。つまり、Encode があれば簡単に処理できるのはわかって
いるのですが、ない場合に面倒で複雑なことをしないといけないのは
望ましいことではないと思っています。

# 5.8 以前(5.0ぐらいから)で動く Encode があれば良いのだが...。
# もしかして、ありますか? (Jcode ではなくて)
 
> > なお、現状では様々な漢字コード変換ツールを使っているので、
> > Perl5.8 の環境では Encode に集約したいとは、個人的に以前から
> > 思っています。
> 
> ありがとうございます。

これは上記の話と矛盾する話になってしまうのですが、
5.8 環境の人にとっては高機能な Encode が使えるのですから、これは
是非とも使いたいところです。
また、Namazu が 5.8 環境であればコード変換が安定して動くとなれば、
5.8 環境の普及にもつながるかもしれません。

そう考えると、4 として

4. 5.8 以降は Encode を使う。それ以外は、様々なコード変換
   プログラムを使う。5.8 以降でも、スイッチにより Encode を
   使わないモードで使うことができるようにしておく。

というのが良いのかもしれません。
何らかの不具合があれば、モードを切り替えれば良いわけですからね。

> あと、indexもUTF-8にすると、複数コードの混じったweb siteの一括検索
> も可能になります。文字コードごとに indexer
> だけ切り替えて....

あぁ、なるほど。indexer も切り替えるという発想ですか。
結構大変そうですが、将来的にはそういうのも良いですね。
-- 
=====================================================================
寺西 忠勝(TADAMASA TERANISHI)  yw3t-trns@xxxxxxxxxxxxxxx
http://www.asahi-net.or.jp/~yw3t-trns/index.htm
Key fingerprint =  474E 4D93 8E97 11F6 662D  8A42 17F5 52F4 10E7 D14E