page_adsence

2010年7月25日日曜日

symfonyでContent-Typeを指定する

Conotent-TypeにあるcharsetはApacheで設定したAddDefaultCharsetが基本的には設定されるが、
この部分がコメントアウトされている場合にはcharsetが指定されずにHTTPリクエストヘッダがやりとりされる。

Content-Type text/html

といった感じ。
が、文字化けを防ぐためには、Content-Type内にcharsetを指定しておくほうがいいと思う。
でも、Apacheで設定しまうと、1台のサーバで複数のサイトを運営していた場合に不都合がでる可能性がないとも言い切れない。
そこでsymfonyではview.ymlにContent-Typeが指定できるようになっているので、
これを利用することにする。
以下はview.ymlの記述を抜粋したものである。

default:
  http_metas:
    content-type: text/html

このようになっている部分を以下部分の記述を追加してやる。

default:
  http_metas:
    content-type: text/html; charset=sjis

この用にすればアプリケーションレベルで文字コードを設定することができる。