Namazu-users-ja(旧)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
EUCでフォーム部分の文字化けについて
- From: SASAKI Yoshiaki <NQC38290@xxxxxxxxx>
- Date: Wed, 21 Jan 2004 22:38:28 +0900
- X-ml-name: namazu-users-ja
- X-mail-count: 03715
はじめまして、佐々木と申します。
早速ですが、namazu.cgiによる検索の際に、検索式として日本語を入力
して行うと検索できません。ASCII文字の場合は検索できています。
また、シェル上でのnamazuコマンドでの検索もできています。
検索の対象は同サーバ上で動かしているメーリングリストのアーカイブ
をmhonarcでhtml化したファイルで、全てEUCで保存しています。
日本語を入力して行った場合、フォームのテキストフィールドに化けた
文字が表示され、実行(submit)ボタンも消えてしまいます。例えば、
こんにちは
と入力して実行すると、テキストフィールドに次の文字列が現れます。
縺薙s縺・■縺按><input type=
このページをWindowsのメモ帳で見ると該当部分は
<input type="text" name="query" size="40" value="裔ニ蚶裔ve「」裔ツ">
<input type="submit" value="Search!">
のようになっています。(valueの中のニ、「、」、ツは実際は半角です)
検索実行後のページの他の部分は文字化けしていませんが、検索に失敗
しているため
検索式にマッチする文書はありませんでした。
というメッセージが表示されます。
mknmzで作成したNMZ.head.jaは、<head></head>の間に
<Meta HTTP-EQUIV="content-type"
CONTENT="text/html;charset=EUC-JP">
を加えた以外にカスタマイズはしていません。
今回の環境で、検証に使用しているWebブラウザはIE6 SP1で
OSはWindows2000 Professionalです。
自分なりに設定を確認してみたつもりですが、行き詰まりました。
どこか調査・設定すべき場所や原因として考えられることについて、
何かお心あたりございましたらコメントお願い致します。
主な環境とnamazuの設定は下記の通りです。
■サーバ
Red Hat Linux release 8.0 (Psyche)
Kernel 2.4.20-20.8
■ソフトウェアのバージョン
# rpm -q namazu kakasi nkf perl
namazu-2.0.10-8
kakasi-2.3.4-8
nkf-1.92-11
perl-5.8.0-88.3
# mhonarc -v
MHonArc v2.5.14 (Perl 5.008 linux)
# httpd -v
Server version: Apache/2.0.40
Server built: Nov 27 2003 11:07:36
■ディレクトリ
※以下、本当のメーリングリストの名前をml-nameで置換しています。
・インデックスの保存場所
/var/lib/namazu/index/ml-name
・namazu.cgiの保存場所
/var/www/html/mhonarc/ml-name
■mknmz -Cの結果
※設定ファイルを用意してインデックスを作成しています
(最終的にファイル中で定義しているのは$ADDRESSのみです)
# mknmz --mhonarc -C -f /var/lib/namazu/index/ml-name/.mknmzrc
読み込んだ設定ファイル: /etc/namazu/mknmzrc /var/lib/namazu/index/ml-name/.mknmzrc
システム: linux
Namazu: 2.0.10
Perl: 5.008
NKF: module_nkf
KAKASI: module_kakasi -ieuc -oeuc -w
茶筌: no
わかち書き: module_kakasi -ieuc -oeuc -w
メッセージの言語: ja_JP.eucJP
言語: ja_JP.eucJP
文字コード: euc
CONFDIR: /etc/namazu
LIBDIR: /usr/share/namazu/pl
FILTERDIR: /usr/share/namazu/filter
TEMPLATEDIR: /usr/share/namazu/template
対応メディアタイプ:
application/pdf
application/x-bzip2
application/x-compress
application/x-gzip
application/x-rpm
message/news
message/rfc822
text/hnf
text/html
text/html; x-type=mhonarc
text/plain
text/plain; x-type=rfc
text/x-hdml
text/x-roff
■インデックス作成(次のスクリプトでとりあえず一括作成)
#!/bin/bash
IDXDIR=/var/lib/namazu/index/ml-name
ARCDIR=/var/www/html/mhonarc/ml-name
rm -f $IDXDIR/NMZ.*
mknmz --mhonarc -O $IDXDIR -f $IDXDIR/.mknmzrc $ARCDIR
■localeの結果
# locale
LANG=ja_JP.eucJP
LC_CTYPE="ja_JP.eucJP"
LC_NUMERIC="ja_JP.eucJP"
LC_TIME="ja_JP.eucJP"
LC_COLLATE="ja_JP.eucJP"
LC_MONETARY="ja_JP.eucJP"
LC_MESSAGES="ja_JP.eucJP"
LC_PAPER="ja_JP.eucJP"
LC_NAME="ja_JP.eucJP"
LC_ADDRESS="ja_JP.eucJP"
LC_TELEPHONE="ja_JP.eucJP"
LC_MEASUREMENT="ja_JP.eucJP"
LC_IDENTIFICATION="ja_JP.eucJP"
LC_ALL=
■.namazurcの設定内容
※以下、本当のサーバ名をwww.serverで置換しています
Index /var/lib/namazu/index/ml-name
Replace /var/www/html/ http://www.server/
Lang ja_JP.eucJP
Scoring tfidf
EmphasisTags "<strong class=\"keyword\">" "</strong>"
※この.namazuecは、namazu.cgiを保存したディレクトリの
/var/www/html/mhonarc/ml-nameに保存
尚、保存している(検索対象の)htmlは、mhonarcでいったんJISで出力
し、nkf -meでEUCに変換したものです。
(本当は一度にEUCにしたかったのですがメール本文行頭に ESC+(B が
入ってしまうため、まずは強引にこのように作成しました。)
kcc というコマンドがあることを知りましたので、念のため上記htmlや
NMZ.head.ja などは kcc -c でEUCと判定されることは確認しています。
■Apache(/etc/httpd/conf/httpd.conf)の該当ディレクトリの設定
※接続許可しているIPをXXX.XXX.XXX.XXXで置換しています
<Directory /var/www/html/mhonarc/ml-name>
ForceType "text/html; charset=euc-jp"
Options +ExecCGI -Includes -Indexes
Order deny,allow
Allow from XXX.XXX.XXX.XXX 127.0.0.1
Deny from all
AddHandler cgi-script .cgi
AuthName ml-name
AuthType Basic
AuthUserFile /var/www/html/mhonarc/mlname/.htpasswd
Require valid-user
</Directory>
※以上の設定による検索ページのURL
http://www.server/mhonarc/ml-name/namazu.cgi
--
SASAKI Yoshiaki <NQC38290@xxxxxxxxx>