エンコード用関数を自前して、出力の際に利用すれば良いかと思います。
あまりテストしてませんが、mb_convert_encodingで変換しちゃうのが簡単かな、と思います。
// SJIS Encode 用関数
function Encode_euc2sjis ($tpl_output, &$smarty) {
$tpl_output = mb_convert_encoding($tpl_output, 'SJIS', 'EUC-JP');
return $oput;
}
// 使用方法
$smarty->register_outputfilter("Encode_euc2sjis");
URL はダミーです:http://www.itmedia.co.jp/enterprise/0402/19/epn01.html
fetch()メソッドを使うしかないのではないでしょうか?
http://sky.freespace.jp/smarty/SmartyManual_2-6-3J_html/api.fetc...
上記ページのサンプルを改造して
$output = $smarty->fetch("index.tpl");
$sjis_out = mb_convert_encoding($output, 'SJIS', 'EUC-JP');
echo $sjis_out;
http://jp.php.net/manual/ja/function.ob-start.php
(Smartyの機能を使わずですが)Output Bufferingも使えると思います。
function my_callback($buffer) { return mb_convert_encoding($buffer,"Shift_JIS","EUC-JP"); } ob_start("my_callback");
コメント(0件)