Tag Archives: バッファ

[PHP]携帯サイト向けに文字コードを一括変換する

Share on Facebook
Bookmark this on Delicious
LINEで送る
Pocket

携帯サイトを UTF-8 で書ければ余計な手間がかからなくていいのですが、
古い機種もカバーするとなると未だに Shift-JIS を利用しなければなりません。
加えて全角カタカナを半角カタカナに統一するとなると結構面倒です。

モバイル専用サイトなら全て Shift-JIS で統一するのも手ですが、データベースを
PCサイトと共有しているケースは変換する必要がどうしても出てきます。

かといって echo のたびに mb_convert_encoding と mb_convert_kana を
やっていたのでは埒が明かないので、出力を一時的にバッファリングして一括変換します。
下記のプログラムソースは UTF-8 で書かれ、 Shift-JIS として出力しています。

<?php
mb_internal_encoding("UTF-8");
ob_start('mobile_output');
header("Content-Type: text/html; charset=Shift_JIS");
?>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
    <title>タイトル</title>
  </head>
  <body>
  これはサンプルです。SAMPLE123
  </body>
</html>
<?
ob_end_flush();

function mobile_output($str){
	$str = mb_convert_kana($str, "ka", "UTF-8");
	$str = mb_convert_encoding($str, 'SJIS', 'UTF-8');
	return $str;
}

フォームから GET や POST で受け取るデータは Shift-JIS なので
データベースに格納する場合などは適宜変換して下さい。

Posted in PHP | Tagged , , | Leave a comment