namazu と pnamazu の文字コード問題

まだ解決はしていないのだが、途中経過をば。

お客さんから、「namazu では検索結果が正常に表示されるのに、pnamazu だと文字化けする」という指摘が入った。
そのお客さんは、できるお客さんだったので、自力で問題を調べて「namazu と pnamazu では同じ条件で検索しても、検索結果は違う文字コードになるようだ」と報告してくれた。

手元の環境で再現テストを試みたところ、namazu を CGI として動作させた場合は文字コードが EUCJP になる(ように設定したつもりなので、意図した動作)のに対し、pnamazu では文字コードが ISO-2022-JP になってしまった。

namazu、あるいは pnamazu については、環境変数(LANG 他)や、namazurc の設定内容、CGIの変数(lang)など、複数の要素で文字コードを指定できるようになっており、結局どの設定が生きてどの文字コードになるのかは、なかなか分かりにくかったりする。サーバーの設定をかなり厳密に把握しておかなければならないのだが、これが基本のようで意外と難しいのだ。
知らない間に同僚が、「影響しないと思って」環境変数をしらっと書き換えていたりするからだ。

というわけで、私も、自分が構築したサーバーであるにも関わらず四苦八苦しながら設定を調整してみた。
そして、namazurc で Lang ja_JP.eucJP と設定し、検索用 form に を書かないようにすることで、namazu でも pnamazu でも同じ EUCJP で検索結果を得ることができるようになった(うちのサーバーでは変な環境変数は設定されていなかったということだ)。

namazu の仕様がこうなった歴史はよく分からないのだが、pnamazu については History が残っていて、どうも EUCJP だと文字化けするブラウザがあったので、lang の指定が ja だけだと(あるいはデフォルトだと) ISO-2022-JP を選択するようにしたらしい。
このあたりの設定情報の優先順位が C 言語版の namazu とは若干異なっているようだ。

ブログ気持玉

クリックして気持ちを伝えよう!

ログインしてクリックすれば、自分のブログへのリンクが付きます。

→ログインへ

なるほど(納得、参考になった、ヘー)
驚いた
面白い
ナイス
ガッツ(がんばれ!)
かわいい

気持玉数 : 0

この記事へのコメント

この記事へのトラックバック