2011年11月1日火曜日

Symfony2でshift-jis表示

次の仕事の案件でSymfony2を使って、主にモバイルをターゲットにしたサイトを作る事になった。
ちなみにSymfony自体初心者で分からない事だらけ...

Symfony日本ユーザー会の日本語ドキュメントを読みあさって何とか簡単なページを使えるようにはなった。
感謝感謝。

で当然モバイル用なのでShift-jisのページを表示する必要があるのだが、これが中々分からなかったので防備録を兼ねて投稿。

通常コントローラー内でレスポンス返すには

return $this->render('AcmePagesBundle:Pages:index.html.twig');

とするのだがこれだと当然保存したエンコード形式になってしまう。
PC用のページも作るし、eclipse使っているのでファイル自体はUTF-8にして、htmlを吐き出す時だけshift-jisにしたい。
なんだかんだで

use Symfony\Component\HttpFoundation\Response;

...

$content = $this->renderView('AcmePagesBundle:Pages:index.html.twig');
$content = mb_convert_encoding($content, "SJIS", "auto");
return new Response($content);

で出来るようになったっぽい。

...これで本当にいいのか?なにせ始めたばかりで自信がない。
もし他に良い方法知っている方いらっしゃたらコメントお願いします。m(_ _)m

0 件のコメント:

コメントを投稿