Namazu-users-ja(旧)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
ISO-2022-JP-2 なメールを mknmz したときの問題
- From: Katsuhiro Ueno <unnie@xxxxxxxxxxxxxx>
- Date: Sun, 19 Mar 2000 00:33:44 +0900
- X-ml-name: namazu-users-ja
- X-mail-count: 00114
はじめまして。
うえの@ぶるーすかいと申します。
インデックス作成のプロセスにバグを見つけたので、報告します。
先日、namazu-2.0.1 と kakasi-2.3.1 を用いて
6 万通ほどのメールに対して mknmz を実行した後、
確認のために namazu コマンドで明らかに多数含まれている
英単語 (linux, ruby など) を検索してみたところ、
わずか数軒しかヒットしませんでした。
NMZ.w の内容が文字化けしており、どうやらインデックスが
正しく生成されていないようでしたので調べてみたところ、
処理対象のメールのうち、*引用部分に* ISO-2022-JP-2 のコード
(アキュートアクセント付きの a) を含んでいるものがあったのが原因らしく、
コントロールコード (ESC) を含んだままの内容が Text::Kakasi に
渡された後、終了するまでずっと Text::Kakasi が誤動作していたようです。
もちろん、当該メールの前に *本文中に* ISO-2022-JP-2 のコードを
含んでいるものが処理されていましたが、こちらは
インデックスの作成には問題ありませんでした。
使用したバージョンは、
Linux-2.2.14
perl-5.005_51
namazu-2.0.[12]
kakasi-2.3.1 & Text-Kakasi-1.01.tar.gz
nkf171.shar
です。
mailnews.pl に対する修正パッチです。
--- namazu-2.0.2/filter/mailnews.pl.orig Sat Mar 18 21:28:08 2000
+++ namazu-2.0.2/filter/mailnews.pl Sat Mar 18 21:28:22 2000
@@ -66,6 +66,7 @@
gfilter::line_adjust_filter($cont);
gfilter::line_adjust_filter($weighted_str);
gfilter::white_space_adjust_filter($cont);
+ gfilter::white_space_adjust_filter($weighted_str);
gfilter::show_filter_debug_info($cont, $weighted_str,
$fields, $headings);
return undef;
ちなみに、ChaSen では問題ありませんでした。
Perl モジュールでない kakasi だと、当該メールの内では
盛大に文字が化けますが、後の分かち書き処理に
影響を残すことはありませんでした。
また、ドイツ語 (ISO-8859-1) や韓国語 (euc-kr) の SPAM を
LANG=ja な mknmz に食わせてみたりもしましたが、
当然文字化けはするもののインデックスの作成には
特に問題はないようです。
Text::Kakasi 側に漏れたのが ESC (0x1b) だったのが
良くなかったみたいですね。
-=====--===-
うえの かつひろ @ BLUE-SKYNET <unnie@xxxxxxxxxxxxxx> --=
---=----===- http://www.blue.sky.or.jp/ -==