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