[Namazu-users-ja 30] Re: namazu.cgi にて検索を実行すると 日本語のディレクトリ、ファイル名が正しく表示されません。

Tadamasa Teranishi yw3t-trns @ asahi-net.or.jp
2004年 7月 26日 (月) 16:33:03 JST


寺西です。

# 日本語のディレクトリ名、ファイル名の対応はおまけ程度の物ですので、
# あまりおすすめできません。

fujii satoru wrote:
>  
> namazuにて全文検索のシステムを構築しましたが、
> linux のコンソールにて実行すると日本語の、ディレクト名、ファイル名が
> 正しく表示されますが、
> namazu.cgi にて検索を実行すると 日本語のディレクトリ、ファイル名が正しく
> 表示されません。
> 
> linux のコンソールの検索結果
> /home/demo/日本語のディレクトリ/Namazuの基本構成.doc (25,088 bytes)
> 
> namazu.cgi + httpd の検索結果 
> http://43.3.188.196/home/demo/%C6%FC%CB%DC%B8%EC%A4%CE%A5%C7%A5%A3%A5%EC%A5%AF%A5%C8%A5%EA/Namazu%A4%CE%B4%F0%CB%DC%B9%BD%C0%AE.doc
> (25,088 bytes)

正しく表示されないというのは、uri エンコードされているという
意味でしょうが、日本語のディレクトリ名、ファイル名は、uri エンコー
ディングされていますが(ある意味では)正しく表示されています。

(mknmz に -U オプションを付けると、URIのencodeを行ないません。が、
Webブラウザ、Webサーバによってはリンクが開かない可能性が出てきます。)

> この障害は samba , windows 系のファイル名、ディレクトリ名が 
> nicode(UCS-2 )
> にて取り扱いしており、namazu.cgi が Unicode を正しく理解できず、日本のファイ
> ル名
> ディレクトリ名が文字化けしていると思われます。

いえ違います。
linux のファイルシステムには、ファイル名、ディレクトリ名がEUC-JPに
なっていますので、unicode は全く関係ありません。
mknmz にしても namazu.cgi にしても、EUC-JP のファイル名を取り扱う
ことになります。

これは

> Namazu.cgi + httpd で検索した結果は、フォント化けしておりますが、windows よ
>> フォント化けしたファイルをクリックすると正しく表示されていることを確認しまし
> た。

とあるように、リンク先を開くために漢字を uri エンコーディングして
います。(漢字は uri エンコーディングする必要があるのです。)

template/NMZ.result* の中身が

<dd><a href="${uri}">${uri}</a> (${size} bytes)<br><br>

となっているように href で指定しているリンク先と、<a> タグで囲まれて
いる表示内容とが同じ ${uri} になっています。
つまり、表示を優先するか、リンクを優先するかの選択になります。
(mknmz -U を付けると、表示を優先して uri エンコードしなくなり、付け
ないとリンクを優先して uri エンコードすることになります。)

結局、namazu.cgi を改造しないと、今のところ表示用のuriとリンク用の
uri の内容を変えることができません。
とりあえずの改造方法は、過去 ML に出ていますが、現在その記事に
アクセスできるかどうかは確認していません。
-- 
=====================================================================
寺西 忠勝(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 メーリングリストの案内