2010.01.28
携帯サイトの制作にXHTMLを使ったのですが(cssを使うため)、
MTで書き出していたので文字コードはUTF-8でした。
あまりない状況かもしれませんが、そのときに躓いたところを
メモしておこうと思います。
※ちなみに頼りの綱だったMT-I18NプラグインはMT5未対応でした。。
※2010.5.20 追記
I18NHelperというプラグインなら動くとの情報を頂きました。
タグを書くときは文字コード指定の大文字/小文字に注意です!
XHTMLを使うのにまず問題となるのがDoCoMo端末です。
XHTML対応機種でも、そのままでは使うことができません。
○XML宣言とDOCTYPE宣言が必要
HTMLの最初に上のような宣言を書きます。DOCTYPEはDoCoMoに合わせておけば他キャリアでも大丈夫です。
○.htaccessでAddTypeを指定
.html形式のままXHTMLとして動作させるために、.htaccessに上の1行を書きます。
さて、これでとりあえずXHTMLが使えるようになるのですが・・
今度はauで問題が出てきました。
バリバリ文字化けしてます。
どうやら、auのうちKDDIの端末で
・application/xhtml+xml
・UTF-8
のサイトを表示すると文字化けしてしまうらしいのです。
auの携帯でapplication/xhtml+xml; charset=utf-8なサイトを見ると問答無用で文字化けする
こちらの記事を大いに参考にさせていただきました
先ほどの.htaccessに追記して、条件分けします。
KDDI端末の場合はtext/html、それ以外はapplication/xhtml+xmlで表示させるようにします。
これでKDDI端末でも無事に表示できるようになりました。
MTで書き出していたので文字コードはUTF-8でした。
あまりない状況かもしれませんが、そのときに躓いたところを
メモしておこうと思います。
※ちなみに頼りの綱だったMT-I18NプラグインはMT5未対応でした。。
※2010.5.20 追記
I18NHelperというプラグインなら動くとの情報を頂きました。
タグを書くときは文字コード指定の大文字/小文字に注意です!
XHTMLを使うのにまず問題となるのがDoCoMo端末です。
XHTML対応機種でも、そのままでは使うことができません。
○XML宣言とDOCTYPE宣言が必要
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//WAPFORUM//DTDXHTML Mobile 1.0//EN"
"http://www.wapforum.org/DTD/xhtml-mobile10.dtd">
HTMLの最初に上のような宣言を書きます。DOCTYPEはDoCoMoに合わせておけば他キャリアでも大丈夫です。
○.htaccessでAddTypeを指定
AddType application/xhtml+xml .html
.html形式のままXHTMLとして動作させるために、.htaccessに上の1行を書きます。
さて、これでとりあえずXHTMLが使えるようになるのですが・・
今度はauで問題が出てきました。
バリバリ文字化けしてます。
どうやら、auのうちKDDIの端末で
・application/xhtml+xml
・UTF-8
のサイトを表示すると文字化けしてしまうらしいのです。
auの携帯でapplication/xhtml+xml; charset=utf-8なサイトを見ると問答無用で文字化けする
こちらの記事を大いに参考にさせていただきました
先ほどの.htaccessに追記して、条件分けします。
AddType application/xhtml+xml .html
RewriteEngine on
RewriteCond %{HTTP_USER_AGENT} KDDI [OR]
RewriteCond %{HTTP_USER_AGENT} UP\.Browser
RewriteCond %{LA-F:REQUEST_FILENAME} \.html
RewriteRule .* - "[T=text/html; charset=utf-8]"
KDDI端末の場合はtext/html、それ以外はapplication/xhtml+xmlで表示させるようにします。
これでKDDI端末でも無事に表示できるようになりました。
はじめまして。とてもためになるサイトで、よく拝見しております。
文字コードの件ですが、
I18NHelperというプラグインなら、MT5でも動きました。
使い方は同じで、下記のもので囲みます。
:
:
ここでの大文字・小文字が区別されるのか
私は、携帯サイトのエンコードをShift_JISと記述していたため、
と書いたのでは動きませんでしたが、
で無事に変換されました。
誤って、タグをそのまま書き込んでしまい、
下記を修正として書かせていただきます。
--
はじめまして。とてもためになるサイトで、よく拝見しております。
文字コードの件ですが、
I18NHelperというプラグインなら、MT5でも動きました。
使い方は同じで、下記のもので囲みます。
<MTEncodeText from="utf-8" to="Shift_JIS">
:
:
</MTEncodeText>
ここでの大文字・小文字が区別されるのか
私は、携帯サイトのエンコードをShift_JISと記述していたため、
<MTEncodeText from="utf-8" to="shift_jis">
と書いたのでは動きませんでしたが、
<MTEncodeText from="utf-8" to="Shift_JIS">
で無事に変換されました。
むぎちゃさん、はじめまして。
コメントありがとうございます。
>I18NHelperというプラグインなら、MT5でも動きました
なんと。。I18NHelperプラグインも当時試してみたのですが、そういう事情があったのですか・・。
ご報告、ありがとうございます!
これで次回からはスムーズに実装できそうです。
ページを拝見させていただきました。
I18NHelper で指定の方法で試しましたが、アーカイブページのみ文字化けが解消されません。
I18NHelper で解決された方は、アーカイブページも解決しました?
度々すみません。
私はMTOS5を使用しています。
MT5なら可能なのでしょうか?
>I18NHelperというプラグインなら、MT5でも動きました
試させてさせていただきました…。
<MTEncodeText from="utf-8" to="shift_jis">
という記述では文字化けで、
<MTEncodeText from="utf-8" to="Shift_JIS">
という記述に書き変えても文字化けでしたが、
どういう訳か
<MTEncodeText from="utf-8" to="Shift-JIS">
アンダーバーをハイフンに変えたら文字化けが解消されました。そういうこともあるんですね。