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 件のコメント:
コメントを投稿