Столкнулся с проблемой некорректного отображения кириллических шрифтов в браузере, а точнее браузер неправильно определял кодировку. Краткий анализ показал, что данное неудобство проявляется только при включении плагина ZF debug. Кинув взгляд на исходный код страницы увидел, что стили и скрипты свои плагин подключает сразу же после открывающего тега
Для исправления ситуации необходимо подправить файл library\ZFDebug\Controller\Plugin\Debug.php следующим образом(выделено черным цветом)
<head>
, то есть до метатега с информацией о кодировке страницы, что, видимо, не совсем правильно.Для исправления ситуации необходимо подправить файл library\ZFDebug\Controller\Plugin\Debug.php следующим образом(выделено черным цветом)
protected function _headerOutput() {
$collapsed = isset($_COOKIE['ZFDebugCollapsed']) ? $_COOKIE['ZFDebugCollapsed'] : 0;
return ('
<style type="text/css" media="screen">
…
</script> </head>');
}
protected function _output($html)
{
...
$response->setBody(preg_replace('/(<\/head>)/i', '$1' . $this->_headerOutput(), $response->getBody()));
...
}
Все, теперь<meta http-equiv="content-type" content="text/html; charset=utf-8" />
будет стоять сразу после открывающего тега<head>
.
п.с. Проблема так же решается если принудительно указывать BOM в начале файла, но, к примеру, PHP Storm не умеет(на данный момент) сохранять его. Однако же BOM не необходим для браузерных приложений, даже излишен, исходя из документа "Use of BOM is neither required nor recommended for UTF-8"