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>
- Date: Mon, 02 Jul 2001 16:56:35 +0900
- X-ml-name: namazu-devel-ja
- X-mail-count: 01521
- References: <B7638D1A.56EB%hamu69@junlab.com>
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
国立天文台 天文学データ解析計算センター
--