[Namazu-users-ja 73] Re: [Namazu-devel-ja 178] Re: Namazu 2.0.13 の filter/excel.plの問題 ?

Tadamasa Teranishi yw3t-trns @ asahi-net.or.jp
2004年 9月 23日 (木) 13:48:09 JST


寺西です。

Yukio USUDA wrote:
> 
> > ところで gfilter.pl で codeconv::eucjp_zen2han_ascii を呼ばないのは
> > 正解?
> han2zenを呼んでいたのはMS-Win32で使われる半角カナ問題への対策ではないか
> と思います。
> ということで、英数の半角化は不要だったのでしょう。
> MS-Win32の時しか使用していないですし。

Windows だけ英数の半角化が不要な理由はないだろうと思っていましたが、
よく考えると、UNIX の時は何もしていないということですね。
つまり、UNIX の時も英数は全角のままだと。(たぶん)

UNIX と Windows とで挙動が変わるのは嫌なので、ここは正規化して
しまっていいのではないかと思いましたが、そういう話ですか。

UNIX, Windows に関係なく normalize して良いでしょう。
$weighted_str に入れられて、後々の処理を行うことを考えると、
それまでに normalize されていないと、処理の途中でおかしくなる可能性
もありますから。
(実際、問題になることはないとは思いますが、あらゆるところが正規化
された文字列を扱うことを前提として作られていますから。)

> field 検索を重視するならOSにかかわらず正規化したほうがよいでしょう。
> ただ、この filename_to_title ですべき処理かどうかは考えたほうがよいです。

どこでするかはともかく、どこかで正規化した方が良いでしょう。
ここはあくまでもタイトル(ファイル名からタイトルに変換されたわけ)です
から、正規化しても本来問題ないはずだし、ファイル名と厳密に一致する
必要もないはず。(実際、半角カナは変換されるし。あれ、UNIX で半角カナ
だったらそのままか!?)

# で、$tmp =~ s|/\\_\.-| |g; の意味は不明。tr したかったのかな?

ともかく、
ここは全角記号が表示されるのに、あそこは半角になるというのは、
統一感がなくて、紛らわしいだけです。
 
> > というより、ここ codeconv::normalize_eucjp で良いのでは?
> > というより、codeconv::toeuc で良いのでは? という気がしますがどうで
> > しょう。
> > --
> shiftjis <-> euc 変換だけ専用のサブルーチンが残っているのは
> 速度かなにかを気にしたものでしょうかね

nkf -emZ1 のオプションの影響を受けないルーチンですね。

> MS-Win32時の処理が汎用ルーチンに入っているのは気になるので
> いずれどこかに切り出したいと思います。

汎用ルーチンに入っている方が、汎用ルーチンを呼び出す側がすっきり
するのでよさそうに思いますが、毎回条件判断されるのが嫌だとか
ということでしょうか。
あるいは、もっと前の処理で正規化してしまって、汎用ルーチンを通る
ときは UNIX/Windows の区別がなくなった状態にしたいということで
しょうか。
-- 
=====================================================================
寺西 忠勝(TADAMASA TERANISHI)  yw3t-trns @ asahi-net.or.jp
http://www.asahi-net.or.jp/~yw3t-trns/index.htm
Key fingerprint =  474E 4D93 8E97 11F6 662D  8A42 17F5 52F4 10E7 D14E




Namazu-users-ja メーリングリストの案内