このサイトはEthnaで作られているのですが、EthnaのスクリプトエンコーディングはEUC-JP。データの保存はSQLiteでおこなっているのですが、それもEUC-JP。このあたりのエンコードをちまちま変更するのは非常に面倒なのでFilterを使ってバッファリング。最終出力をEUC-JPからUTF-8に変換しました。
コードはこんな感じ。これをControllerに追加するだけ。
php
class Filter_Ob extends Ethna_Filter
{
/**
* 実行前フィルタ
*
* @access public
*/
function preFilter()
{
mb_http_output("UTF-8");
ob_start('mb_output_handler');
}
/**
* 実行後フィルタ
*
* @access public
*/
function postFilter()
{
ob_end_flush();
}
}
?>
簡単すぎる!