MVCでの携帯サイトの文字コードの扱い

現在(20081011)の携帯サイトの標準の文字コードはShift-JISのようです。WEBアプリケーションはPHPで作成しているという方にとってはなかなか面倒なことかと思います。データベースを簡単に扱えてこそのPHPということで、ファイル自体はEUC-JPで作成するのが一般的だと思います。

MVCなどのオブジェクト指向でサイトを構築している場合は、特に面倒ではないと思いますが、分けずに「ひとつのページ」という概念で作成している場合は、文字コードの変換が面倒で仕方がないと思います。

結論から言うと、携帯サイトはMVCで作るべき!だとひよっこながらも私は考えています。MVCではなかった場合で、HTMLを吐き出す場合は

$contents = "文字列2";
 $output_html = <<<_TEST_
文字列1
 $contents
 _TEST_;
 echo mb_convert_encoding($output_html,"SJIS","EUC-JP");
 ?>

これで、文字列1,2をSJISで出力することができます。

しかし問題は、最近の傾向としては、携帯サイトの文字コードはUTF-8に主としていこうという流れがあることです。もちろん、このままShift_JISの可能性もありますし、パソコンと同じくEUC-JPになるかもしれません。

きっと、この3つの文字コードが利用できるという携帯が増えると思うのですが、携帯サイトについては、本当に携帯キャリア、メーカーに方向性に依存する部分が大きいように思います。

ですので、簡単に簡単に対応できるように表示用の一か所の変換用プログラムファイルからinclude_once()して、表示する用、フォームから受け取った用、HTML部分のcharset用の関数(クラス)を利用する形が望ましいと思います。

MVCで作成すると、極端に携帯のブラウザの対応規格がわかったとしても、編集するべきファイルがすぐにわかるというところですね。PHPフレームワークの一つCakePHPではlayoutという機能を利用すれば、ひとつのファイルで全てに適応することができそうです。