Amazon

2011年9月16日金曜日

ケータイ、Androidの文字コードの袋小路


mixiモバイル、touch、PC版アプリを同時に作ろうとしていて文字コードの袋小路にハマる。
たぶんこれはmixiモバイルに限らないのでメモしておこう。

モバイル系は
au, docomo, softbankはShift-JISに対応。但し、
CSSを使う場合はiモード対応XHTMLにする必要がある。
XML宣言とi-mode用のDOCTYPE宣言が必要。

docomo, softbankはutf-8でも問題ないが
auはau browser6.2はutf-8に対応していない。7.2は対応している。
3G端末に限って言うと、UTF-8が使える条件は次のようになっている。
参照元はこちら
機種 XHTML HTML XHTML
(SSL)
HTML
(SSL)
docomo 3G ○ ○ ○ ○
au ブラウザver7.2 ○ △ ○ ○
au ブラウザver6.2 × △ × ×
SoftBank 3G ○ ○ ○ ○
○:文字化けしない △:一部の条件下で文字化け ×:文字化けする

次にtouch版
iPhoneの場合、Shift-JISでもUTF-8でも問題ない。
Androidの場合、2.1においてはShift-JISだと問題がある。

参照元はこちら
文字エンコーディング Content-Typeヘッダ xml宣言の有無 結果
Shift_JIS text/html 有 ○
無 ○
application/xhtml+xml 有 ×
無 ○
UTF-8 text/html 有 ○
無 ○
application/xhtml+xml 有 ○
無 ○
EUC-JP text/html 有 ○
無 ○
application/xhtml+xml 有 ×
無 ○

つまりShift-JISだとAndroid  2.1で非対応となり、UTF-8だとau携帯が非対応(文字化け)となってしまう。
Shift-JISにして、Android 2.1の時だけContent-Typeヘッダーをtext/htmlに変換するのが一番手がかからないかなぁ。。。

0 件のコメント:

コメントを投稿

Amazon3