PHPモジュールのSmartyを使用していて、PHPとテンプレートのエンコードをEUCで保存して、出力をShift-Jisにしたいのですが、どの様にすればいいでしょうか?

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2007/02/07 20:32:18
  • 終了:2007/02/14 20:35:03

回答(3件)

id:arcana No.1

arcana回答回数120ベストアンサー獲得回数102007/02/07 21:33:35

ポイント27pt

エンコード用関数を自前して、出力の際に利用すれば良いかと思います。

あまりテストしてませんが、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

id:PaulYamamoto No.2

Paul回答回数113ベストアンサー獲得回数22007/02/07 21:33:52

ポイント27pt

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;

id:heppokoA No.3

heppokoA回答回数65ベストアンサー獲得回数72007/02/09 07:17:20

ポイント26pt

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");

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません