携帯サイトを 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 なので
データベースに格納する場合などは適宜変換して下さい。
Similar Posts:
- [PHP]マルチパートメールの構造
- [PHP]トランプのブラックジャックを作る
- [PHP]ひらがな・カタカナをローマ字に変換する
- [PHP]料金表のようなものをテキストだけで表現する
- [PHP]htmlspecialchars()を使うと文字が消える?
- [PHP]背景の明るさを基準に見やすい文字色を組み合わせる(YUV輝度)
- [PHP]GDで作った画像をファイル化せずに直接<img>タグで表示する
- [PHP]DOM, XPathを使ったスクレイピング(HTMLのタグ内容取得)