Symfony 2 アプリケーションからのすべての応答には、次のヘッダー行があります。
Content-Type: text/html
したがって、私のブラウザは、出力文字セットが ISO-8859-1 であると想定しています。ヘッダーに次のように言いたい:
Content-Type: text/html; charset=utf8
代わりは。次のようなすべての応答に対して手動でこれを行うことができることを私は知っています:
$response->setCharset('UTF-8');
しかし、私のアプリケーションには多くのコントロールがあり、UTF-8 しか出力しないため、これは非常に冗長です。デフォルトの文字セットを制御する Symfony 構成設定を探しても無駄でした。私は見つけましframework.charset
たが、それは無関係のようで、とにかくデフォルトでUTF-8です。
すべての応答で Symfony に私の文字セットを指定させるにはどうすればよいですか?
私の考え
HTML と XML の両方で文字セットを明示的に指定できるので、(ほとんどの場合) これがそれほど問題にならないことはわかっています。問題は、プレーン テキストまたは JSON を使用している場合、または を使用して変数をダンプしている場合ですvar_dump
。どちらの場合も、ブラウザーが誤った推測を行うため、すべての非 ASCII 記号がスクランブルされます。
私のバックアップソリューションは、応答クラスをサブクラス化$this->setCharset('UTF-8')
し、コンストラクターに入れることです。