Namazu-users-ja(旧)


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

Re: 鯰(なまず)が蚓(みみず)に化ける



  野首です。

<00b701c01b5f$714404a0$5275ead2@xxxxxxxxxxxxxx>の記事において
takesako@xxxxxxxxxさんは書きました。

>> namazu.cgi の検索結果の書式ファイル NMZ.result.*.ja において
>> 記述された日本語が文字化けしてしまうという現象がありましたので、
>> ご報告いたします。

  どうもありがとうございます。

>> ■ 不具合の原因:
>> output.c の print_hlist() 中で load_nmz_result() を呼び出して
>> 検索結果の書式 NMZ.result.*.ja をファイルから読み込むときに、
>> nmz_codeconv_external() によって EUC-JP から出力系の漢字コード
>> である Shift_JIS に変換され template_caches[idxid] に格納される。
>> ここで、Shift_JIS に変換された template_caches[idxid] を元に
>> result.c の compose_result() によって検索結果を生成し、その後
>> nmz_codeconv_external() を呼び出して EUC-JP から Shift_JIS に
>> 漢字コードを変換し出力しているので、結果的に NMZ.result.*.ja 
>> のファイルに対して2回ほど euctosjis() による漢字コードの変換を
>> 行ってしまうので、文字化けの原因となる。

  コードを追ってみましたが、そのようですね。

>> ■ 対策:
>> output.c の load_nmz_result() において、余分な漢字変換を行わない
>> ようにするパッチ(添付のoutput.c.patch)を作ってみました。
>> ※注)namazu-2.0.5-pre1 用のパッチです。

  この修正をとりこみました。これで pre2 を作成しようと思います。
-- 
野首 貴嗣
E-mail: knok@xxxxxxxxxxxxx (private)
        nokubi@xxxxxxxxx (official)