アプローチは様々だと思うけど個人的にお気に入りの方法です
ob_start("callback");
$smarty->display('sample.tpl');
ob_end_flush();
function callback($buffer){
return mb_convert_encoding($buffer,"SJIS","EUC");
}
アプローチとしてSmarty内部でゴニョゴニョやる方法もあると思うけど、smartyでSJISを使おうとすると文字化けがひどいのでやりません。
displayした内容をob_start関数とob_end_flush関数で受け取って、callback関数内でmb_convert_encodingを利用しEUCからSJISに変換して出力。
なかなか便利じゃないかと思います。

コメントする