Shift_JIS(SJIS) で出力! for 1.5.x

概要

 出力バッファを利用して、出力時に UTF-8 から SJIS-WIN に変更する

 内部エンコーディングUTF-8 のまま

用意するもの

ソース

function onAfterRender() {
	global $mainframe;
	if (!$mainframe->isAdmin()) {
		// 管理画面は変換しなくていいんじゃないかな
		$doc =& JFactory::getDocument();
		$doc->setCharset('Shift_JIS');
		$doc->setMetaData('content-type', 'text/html; charset=Shift_JIS', true);
		$body = JResponse::getBody();
		JResponse::setBody(mb_convert_encoding($body, 'SJIS-WIN', 'utf-8'));
	}
}

注意事項

 出力が SJIS-WIN ってことは、入力もSJIS-WIN ってことで

 内部エンコーディングUTF-8 のままなので、onAfterLoad とかプラグインの初期化とかで、入力を全部変換してやる必要がある