Namazu-devel-ja(旧)


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

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



 From: Jun Yamada <hamu69@xxxxxxxxxx>
 Subject: [namazu-devel-ja] Re: [namazu-users-ja]	「海」で検索すると文字化け
 Date: Tue, 03 Jul 2001 10:17:11 +0900

 > > 1. mknmz の時に、本来は含まれていない 「海」という語を
 > > NMZ.w の中に生成してしまう
 > > (か、もしくは)
 > > NMZ.w には「海」はないのだけれど、namazu.cgi
 > > が、海もあると思ってしまうことがある。
 > > 
 > 他の文書中にも海があるので NMZ.w に「海」は生成されていました。
 > 問題の文書中に「海」があることを認識していること自体は正しいですが、
 > その後の作業で文字コードの誤認識(?)をおこして、htmlを吐き出して
 > いるような感じです。ただしこの時のスコアは正しい値のままです。
 >
 > > 2. namazu.cgi の方で、見つかった語を強調する時に、
 > > 正しくない strong を入れてしまう
 > 文字化けをおこしている文章を調べてみると、「海」という単語が必ず
 > 含まれています。私のサイト中では例外はありませんでした。

これらの報告からすると、mknmz には問題がないし、namazu あるいは 
namazu.cgi での該当文書ピックアップ部分にも問題ないとおもいます。
やはり、HTML的な強調表示(の中で呼ばれている strcasestr())に問題が
あるようです。


 > ですが、文字化けをおこした文書と同じ文章を含んでいて、しかも「海」
 > という単語を含んでいる文書でも、文字化けをおこさないものもあります。

こういうケースは十分ありえるとおもいます。EUC で「海」は b3 a4 で
すが、一バイト目が a4 になるのはひらがなで、二バイト目が b3 のひら
がなは「こ」ですから、「ここ」とか「この」などの文字列が、タイトル
部や要約部に現れてしまうと strcasestr() によって泣き別れを起こして
文字化けします。そうでなければ、たまたま正しく「海」だけを強調表示
して終わります。

まあ、たまたま問題がおこりやすいのが「海」だったというだけで、他の
文字でも同じことが起こっていたはずなので、2.0.6 で直す方がよいかと
おもいます。
--
馬場  肇 ( Hajime BABA )                  E-mail: hajime.baba@xxxxxxxxx
国立天文台 天文学データ解析計算センター
--