2009年7月5日日曜日

smartyで携帯サイト

smartyとShift-JISの相性は悪いらしく、
Shift-JISでの特定の漢字(例:本など)に反応してエラーを出す。
いちいち、literalで囲むのもソースが汚くなるので、
utf-8で作って、表示だけをShift-JISで吐き出す。


// 携帯なので結果をいったん変数に入れる
$output=$smarty->fetch($loadtpl);
// SJISに変換する
$output=mb_convert_encoding($output,"SJIS","UTF-8");
// 変数の内容をechoで書き出し
echo $output;