我的Symfony 2应用程序的所有响应都有这个标题行:
Content-Type: text/html
Run Code Online (Sandbox Code Playgroud)
所以我的浏览器假设输出字符集是ISO-8859-1.我想标题说:
Content-Type: text/html; charset=utf8
Run Code Online (Sandbox Code Playgroud)
代替.我知道我可以为每个响应手动执行此操作:
$response->setCharset('UTF-8');
Run Code Online (Sandbox Code Playgroud)
但这将是非常多余的,因为我的应用程序有很多控件,只能输出UTF-8.我徒劳地搜索了一个控制默认字符集的Symfony配置设置.我发现framework.charset但这似乎是无关的,无论如何默认是UTF-8.
如何让Symfony在所有响应中指定我的字符集?
我知道这不是一个问题(大多数时候),因为我可以在HTML和XML中明确指定charset.问题是我服务纯文本或JSON,或者我正在使用转储变量var_dump.在这两种情况下,所有非ASCII符号都被扰乱,因为我的浏览器冒错了猜测.
我的备份解决方案是将响应类子类化并放入$this->setCharset('UTF-8')构造函数中.
fko*_*ler -1
我认为你可以告诉框架在 config.yml 中使用哪个字符集:
framework:
charset: UTF-8
Run Code Online (Sandbox Code Playgroud)
请参阅: http: //symfony.com/doc/current/reference/configuration/framework.html