Издержки свободы выбора. За те годы, пока преимущества формата UTF-8 сделались очевидны большинству разработчиков и многим заказчикам, были произведены многие тысячи сайтов в кодировке cp1251. Со временем их владельцы приходят к пониманию выгод использования UTF-8 и принимают решение сменить кодировку материалов сайта. Как это сделать на практике?
1. Подготовка
Конвертацию выполняет модуль mbstring. Для его работы необходимо установить параметр
mbstring.func_overload 2
Если вы используете для хостинга VPS-сервер, то параметр легко настроить в php.ini. Если нет, то ситуация усложняется. Будьте особо внимательны: с версии php 5.2.8 параметр меняется глобально на весь сервер. Обратитесь к хостеру, но не соглашайтесь на использование CGI.
Сделайте реззервную копию сайта и выполняйте конвертацию именно на ней. В случае неудачи данные основного сайта не пострадают.
2. Задание параметров конвертации
Задайте язык сайта, формат даты и кодировку.
3. Настройте dbconn.php
В файле в /bitrix/php_interface/dbconn.php добавьте строку
define(«BX_UTF», true);
4. Настройте кодировку сайта
В настройках сайта смените кодировку с windows-1251 на utf-8.
5. Настройте кодировку языка
В настройках языка смените кодировку с windows-1251 на utf-8.
6. Конвертируйте файлы в utf-8
7. Конвертируйте ьазу данных в utf-8
8. Отредактируйте файл after_connect.php
В файле /bitrix/php_interface/after_connect.php найдите строку
$DB->Query(«SET NAMES ‘cp1251′»
И замените на строку
$DB->Query(«SET NAMES ‘utf8′»
9. Очистите кэш всего сайта
10. Выйдите из сеанса работы с панелью управления, закройте браузер, потом откройте его и снова зайдите на сайт.
Обратите внимание: если конвертируете файлы в utf-8 вручную, не сохраняйте специальную последовательность BOM.