Namazu-devel-ja(旧)


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

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



namazu-devel-ja ML に振ってみます。

 From: Jun Yamada <hamu69@xxxxxxxxxx>
 Subject: [namazu-users-ja] 「海」で検索すると文字化け
 Date: Sat, 30 Jun 2001 14:05:14 +0900

 > namazu.cgiで「海」を検索すると下記のように、要約の一部分が文字化け
 > してヒットします。
 > 
 > 文字化けの例
 >  実は最近このようなIT講習の際の
 >       ↓
 >  実は最近、海里茲ΔハIT講習の際の

「山と海」などと入っている文章をインデックスして、namazu -h 海 . 
とすると再現します。どうも、強調表示の時にバグっているようです。少
なくとも、src/result.c#emphasize で何もせずに単に return させるよ
うにすると、(当然強調表示はしませんが)、問題はなくなります。

どうも、emphasize() の中の

        do {
            ptr = strcasestr(ptr, key);
            if (ptr != NULL) {
                memmove(ptr + 2, ptr, strlen(ptr) + 1);
                memmove(ptr + 1, ptr + 2, keylen);
                *ptr = EM_START_MARK;
                *(ptr + keylen + 1) = EM_END_MARK;
                ptr += 2;
            }
        } while (ptr != NULL);

の部分でEUC1バイト目と2バイト目の「泣き別れ」を起こしているっぽい
です。しかし直したいが直せない...

あるいは、もしかしたら、strcasestr() の中の _nmz_lower() に問題が
あるのかもしれませんが、これはたぶん違うような気がします。確信はあ
りませんけど。いちおう昔 namazu-devel-ja であった議論をたどってみ
ましたが、解決には至りませんでした。
--
馬場  肇 ( Hajime BABA )                  E-mail: hajime.baba@xxxxxxxxx
国立天文台 天文学データ解析計算センター
--