auブラウザ、いまだにUTF-8が使えず!

auブラウザ、いまだにUTF-8が使えず!

携帯ブラウザでは元々Shift_JISしか対応していなかったけど、FOMAサービスが開始された2001年頃からUTF-8対応の端末が徐々に増えてきた。携帯でも(X)HTMLのキャラクタエンコーディングはそろそろUTF-8でいいんじゃないか?

そう思って実験的にコンテンツを表示させて見ると・・・。au端末の挙動が明らかに変だ。

関連記事:

携帯のUTF-8対応状況

3G端末に限って言うと、UTF-8が使える条件は次のようになっている。

機種 XHTML HTML XHTML
(SSL)
HTML
(SSL)
docomo 3G
au ブラウザver7.2
au ブラウザver6.2 × × ×
SoftBank 3G

○:文字化けしない △:一部の条件下で文字化け ×:文字化けする

docomoとSoftBankはUTF-8に完全対応できているが、auは最新ブラウザ(バージョン7.2)ですら完全に対応できていない!しかもauはブラウザバージョンやSSLかどうかなどの要因で何やら複雑に変化している。

一体auはどういう動きをしているのか?詳しく調べてみた。

au最新ブラウザはHTMLでGET送信時に文字化け

まずはauブラウザver7.2の状況を見てみる。使用したのは、先日会社で購入した最新機種T004。

用意したのはUTF-8のXHTMLコンテンツ。文字表示とフォーム送信(GET)、フォーム送信(POST)の機能テストが行えるようにページを作成した。XML宣言のencodingをUTF-8とし、Content-Typeヘッダにも「application/xhtml+xml; charset=UTF-8」のようにcharsetパラメータが送信されるようにサーバー設定を行っておいた。

結果は以下の通り。UTF-8でもコンテンツ表示やフォーム送信が正常に動作することが確認できた。

IMGP1704-sIMGP1705-sIMGP1706-s
IMGP1707-sIMGP1708-s

今度はHTMLで同様のテストを行ってみた。XML宣言を外し、Content-Typeヘッダを「text/html; charset=UTF-8」に変更してみると・・・。

IMGP1709-sIMGP1710-sIMGP1711-s
  IMGP1712-sIMGP1713-s

何とGET送信したときだけ、文字化けしている!パケットキャプチャでHTTPリクエストを調べてみると、どうやらHTMLでGET送信のときだけShift_JISでフォーム送信してしまうようだ。auのゲートウェイサーバーが影響しているのか、なにやら中途半端な挙動だ。

WAPブラウザ6.2ではXHTMLでUTF-8が使えない

WAPブラウザ6.2の状況は更にヒドイ。W61KでXHTMLを表示した結果は以下の通り。

x1-sx2-sx3-s
x4-sx5-s

何とW61Kではフォーム送信はもちろん、文字表示も含めてUTF-8が使えない!

HTMLでのUTF-8表示はそこまではヒドくない。

h1-sh2-sh3-s
h4-s
h5-s

T004と同様、GET送信だけは文字化けしてしまうものの、文字表示とPOST送信には問題がなかった。

SSLではHTMLが文字化けする場合も

さらにSSLでの結果がHTTPでの結果と異なってくる。まずはT004。

< img border=”0″ alt=”IMGP1714-s” src=”/blog/wp-content/uploads/2010/08/imgp1714-s-thumb.jpg” width=”160″ height=”278″ />IMGP1715-sIMGP1716-s
IMGP1717-sIMGP1718-s

IMGP1719-sIMGP1720-sIMGP1721-s
IMGP1722-sIMGP1723-s

何と、T004ではXHTMLでもHTMLでも完璧にUTF-8が使えるようになった。一方、W61Kは次のような状況だ。

sx1-ssx2-ssx3-s
sx4-ssx5-s

sh1-ssh2-ssh3-s
sh4-ssh5-s

W61KはXHTML・HTML共に全くUTF-8が使えない!T004とは正反対の結果に。

まとめ

auでUTF-8対応の条件が複雑だけど、おそらく次の理由によるものではないだろうか?

  • au ブラウザver6.2自体はUTF-8に対応していないため、EZゲートウェイが変換しないコンテンツ(XHTMLコンテンツ及びSSLの場合)は文字化けする
  • HTTPでHTMLコンテンツの場合、EZゲートウェイがUTF-8⇒Shift_JISへの変換を行うが、フォームからのGET送信に対応できていないためGET送信時だけ文字化けする

au端末とEZゲートウェイとの役割分担がうまくいっていない感じだ。

結局のところ、携帯の全キャリアでUTF-8を使うことは実質上できない。でも、CMSやフレームワークとかの連携を考えるとやっぱりUTF-8を使えた方がいいし、欲を言えば開発者が場面に応じてShift_JIS・UTF-8を自由に選べる環境が望ましい。いつか改善される日を待ち望みたい。

Page Top