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

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:
  • 終了:2007/02/14 20:35:03
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答3件)

id:arcana No.1

回答回数120ベストアンサー獲得回数10

ポイント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

回答回数113ベストアンサー獲得回数2

ポイント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

回答回数65ベストアンサー獲得回数7

ポイント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");

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

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

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

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

回答リクエストを送信したユーザーはいません