Namazu-devel-ja(旧)


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

Re: [namazu-users-ja] 「海」で検索すると文字化け



古川です。

From: Hajime BABA <hajime.baba@xxxxxxxxx>
Subject: [namazu-devel-ja] Re: [namazu-users-ja] 「海」で検索すると文字化け
Date: Mon, 02 Jul 2001 16:56:35 +0900

hajime.baba> 「山と海」などと入っている文章をインデックスして、namazu -h 海 . 

    -山-- -と-- -海--
    bb b3 a4 c8 b3 a4
       -海--    -海--

のようになっていて、「山」の 2 バイト目と「と」の 1 バイト目を
囲っているようです。

hajime.baba> どうも、emphasize() の中の
hajime.baba> 
hajime.baba>         do {
hajime.baba>             ptr = strcasestr(ptr, key);


hajime.baba> の部分でEUC1バイト目と2バイト目の「泣き別れ」を起こしているっぽい
hajime.baba> です。しかし直したいが直せない...
hajime.baba> 
hajime.baba> あるいは、もしかしたら、strcasestr() の中の _nmz_lower() に問題が

_nmz_lower() ではなくて、strcasestr 自体が 2 バイト文字に対応し
ていないのが原因だと思います。

2 バイト文字だったら、次の 1 バイトとペアで比較して、ポインタも
2 つ進めないといけないですよね。

直すこと自体は簡単ですが、locale なども考慮して、処理を切り替え
ないといけないですよね?そこらへんで、どういうスタイルで直すべ
きか、が私には判断できないです。

-- 
Rei FURUKAWA 
furukawa@xxxxxxxxxxxx