我的 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')
构造函数中。