【携帯サイト制作】第二回 auでUTF-8で作成したページの絵文字が文字化け

9月 2nd, 2008 | Categories: Mobile, 携帯サイト制作
このエントリをdel.icio.usに追加このエントリをLivedoor Clipに追加このエントリをYahoo!ブックマークに追加このエントリをPOOKMARK. Airlinesに追加このエントリをはてなブックマークに追加

先日からの続き。

UTF-8で作成したページがauで文字化けしてしまう・・・orz

色々と試行錯誤していたら・・・
.htaccessから AddType application/xhtml+xml .html
を削除したら大ジョブでした(・∀・)!
じゃぁdocomoはどうするの?

docomoでXHTML&CSSが出来ないのは意味がないので・・・
という矢先、phpファイルでxhtmlを使用しなくてはいけないことに気が付きました。
ぶっちゃけ、モバイルアドセンスなんですが・・・( ´∀` )
.htaccessに以下の行を追加します。

AddType text/xhtml+xml .php

で、やっぱりauがダメダメだったのですが、docomoでは必須であるxhtmlソースの1行目↓を外すと大丈夫でした。

header(‘Content-Type: application/xhtml+xml; charset=UTF-8′);

どうにも面倒になってきたので・・・
xhtmlヘッダ部分をキャリア毎に記述をインクルードさせることにしました。

例えばこんな感じです。。。

>index.php

< ?php
$ua = $_SERVER["HTTP_USER_AGENT"];
if(ereg("DoCoMo",$ua)){
include("/docomo.txt");
}
elseif(ereg("UP.Browser",$ua)){
include("/au.txt");
}
?>
<html xmlns="http://www.w3.org/1999/xhtml" lang="ja" xml:lang="ja">
<head>
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
<title>タイトル</title>
</head>
<body>
内容
</body>
</html>

>docomo.txt

<?php
header(‘Content-Type: application/xhtml+xml; charset=UTF-8′);
echo ‘<?xml version="1.0" encoding="UTF-8"?>’."n"
?>
<!DOCTYPE html PUBLIC "-//i-mode group (ja)//DTD XHTML i-XHTML(Locale/Ver.=ja/2.0) 1.0//EN" "i-xhtml_4ja_10.dtd">

>au.txt

<?php
echo ‘<?xml version="1.0" encoding="UTF-8"?>’."n"
?>
<!DOCTYPE html PUBLIC "-//i-mode group (ja)//DTD XHTML i-XHTML(Locale/Ver.=ja/2.0) 1.0//EN" "i-xhtml_4ja_10.dtd">

やった!先生、うまくイッタヨ!

と、つかの間・・・・

これだと、auで絵文字が化けるんですよ・・・orz

i絵文字からUnicodeで入れてもダメづら。。。

さぁ、どうしたものか。

他にもっと良い方法があったら教えてください・・・(´・ェ・`)

以下、随時追記してきますー。

第一回 そろそろ携帯サイトも真面目(XHTML&CSS)に作ってみましょうか。
第二回 auでUTF-8で作成したページの絵文字が文字化け
第三回 3キャリア対応 絵文字変換スクリプトで文字化け解決
第四回 ケータイサイトXHTML&CSSでBLINKとかって。
第五回 auでutf-8のページからformで日本語を渡すと文字化けorz
第六回 メール受信設定をしっかりと案内してますか?
第七回 auのソフトキーラベルについて
第八回 エラーが発生しました。レスポンスが不正です。WJ46386E

  1. むっほ
    8月 2nd, 2009 at 15:20
    Reply | Quote | #1

    私も絵文字で格闘しております…
    サイト自体がPC向けで、utf8で作成して公開するつもりなので、携帯もutf8でやろうということにしています。

    絵文字の相互変換は、perlのモジュールencode::jp::mobileで対応できるのですが、

    問題は、やっぱり、端末側にどうやって、utf8と認識させるか…
    そこで、こちらの記事まで辿りついたのですが…

    auの公式サイトには、絵文字のUNICODE表が公開されていますが…やはり、ダメなのでしょうか…utf8ではauは絵文字表示はやはりできないのでしょうか…

  2. muneto
    8月 5th, 2009 at 10:52
    Reply | Quote | #2

    コメントありがとうございます。

    携帯サイトの文字コードの色々は本当にやっかいですよねぇ。。。

    私はなんとかhttp://muneto.murakami.biz/web/mobile/xhtml-css-3.phpにて解決となりましたが、少しでも参考になれば幸いです。。。

Get Adobe Flash playerPlugin by wpburn.com wordpress themes