auはContent-Typeのヘッダの間違いに厳しい?
先ほどの「携帯サイトをUTF-8で出力するかShift_JISで出力するか」の続きというかそれ以前の話。
auで「文字化け」の問題が発生する以前に、「『リクエストされたページは表示できません』と出て表示できないよ」と言われました。
ドコモやソフトバンク端末では表示できていて、さらにauのエミュレータ(現在は公開が停止されているOpenwave SDK6.2K)で見ても特に問題がないので、何が原因なのかさっぱり。
ネットで色々調べてみると、どうもContent-Typeヘッダあたりに間違いがあるときに、「リクエストされたページは表示できません」と出ることがわかりました。アクセスログを見ると確かにアクセスはきています。そこでソースコードをよく調べてみると、
header('Content-Type: application/xhtml+xml charset=' . MOBILE_ENCODING);
↑ セミコロンが抜けていた!!
という凡ミスであることが判明しました。これを直してみるとページは表示できるようになり、今度は「文字化けしとるぞ」という別の問題が見つかったわけです。
ただ、セミコロンが抜けている間違ったHTTPヘッダのままでもドコモとソフトバンク端末では表示できていて(HTMLのmetaタグでは正しく指定されてたからだと思う)、auのエミュレータでも問題が発見できなかった(auのネットワークを経由していないので当然)ので、やっぱり実機がないと検証は厳しいなぁと感じた次第です。
コメントを残す