Проблема с кодировкой в Yii Framework

Проблема связана с корректностью определения в браузерах кодовой страницы. При создании макета все параметры указаны правильно, но вместо русских символов мы видим каракули. Проблема решается путем принудительного указания кодировки по-умолчанию в .htaccess.

Кстати, проблема не является специфичной только для Yii, просто у большинства CMS уже прописаны необходимые параметры или они создаются на этапе установки сайта. Если же написание сайта происходит «с нуля», то все эти нюансы, нужно предусматривать самостоятельно.

В примере указана кодировка UTF-8. Решение для других кодировок аналогично.

Суть проблемы с кодировкой в Yii Framework

В заголовке html у нас правильно указана кодировка:

<meta charset="utf-8">

или

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

Соответственно, в зависимости от версии html.

Несмотря на это браузер может определять абсолютно непредсказуемую кодировку. Точнее, он будет определять ту, которая установлена по-умолчанию.

У многих хостинг провайдеров по-умолчанию прописана windows-1251. В таком случае, пользователь увидит вместо русских букв каракули. Нормальное отображение возможно только при ручном указании кодировки в браузере. Естественно никто такой ерундой давно не занимается. У большинства стоит авто режим. А подобная ошибка приведет просто к тому, что пользователь закроет Ваш сайт и пойдет туда, где таких косяков нет.

Решение

В корневом каталоге сайта создаем файл .htaccess или добавляем в него строчку, если он уже создан:

AddDefaultCharset UTF-8

Наслаждаемся работой. 😉