2003年08月30日(土) ★★★ [長年日記]
[English!]
[한국어]
[今日は何の日]
§1 msearch文字化け
自分のサイトを携帯電話から表示確認してみた。ずいぶん久しぶりのことである。アンテナのページが文字化けしていたので送出する文字コードを変更してやると直りました。
ルートにある.htaccessでshift_jisを設定してあるので、そうでない文字コードを送出する場合はそのディレクトリで設定してやる必要がある。
最近導入した日記もEUC-JPなので、すでに設定済みだから文字化けもなく表示するが、一つ忘れていたのがmsearchだった。いろいろ不都合だらけでたくさんの修正があったが、どう直しても携帯電話から見たときの文字化けが直らない。改行コードも疑った。
うちのサーバーはCGIの場合文字コードに関わらず改行コードがCR+LFになるようだ。ローカルでEUCのLFに設定してもftpしたら自動でCR+LFになるし、サーバー上で拡張子を変えるだけで変更されてしまう。
仕方がないので設定ファイルなども全てEUCのCR+LFに変更したが、それでも文字化けは直らない。いろんなサイトをのぞいて確認してみましょ。
全部だめでした。ちょっとほっとしたけど、なんだか腑に落ちないですね。ちなみに僕の携帯電話はauです。もう少し原因を確かめてみましょう。:-b)
文字化け解決
msearch.cgiの修正で解決しました。バージョンによって場所が異なると思いますが念のため覚え書きを残します。
###################### ### 出力関係の関数 ### ###################### ### ### HTML Content-type出力 ### sub printcontenttype { -- print "Content-type: text/html\n\n" ++ print "Content-type: text/html; charset=EUC-JP\n\n"; }
cgi中のContent-type出力でCharsetを指定してやれば携帯電話が解釈してくれました。PCのブラウザだと関係無しにレンダリングしてくれるのですが、甘やかされてしまいますね。(^^;
それってApacheのバージョンがあがった時の対処と同じでしょ?
msearchの画面を携帯電話から見たのが初めてだったので、ちょっとはまってしまいました。以前スクリプト内のContent-typeを直した憶えがあったのでやってみたら行けたという話です。これはmsearchの作者に言っておこうかな?