Зміна кодування бітрікс на utf8

Зміна кодування бітрікс на utf8

Зміна кодування Бітрікс на UTF8

Досить часто зустрічаємося з ситуацією, коли сайт використовує систему кодування cp1251, хоча "1C-Бітрікс" вже з десяток років підтримує кодування UTF-8. В основному це досить старі проекти, які працюють і еволюціонують до сих пір, але перейти на UTF-8 не могли через здаються технічних складнощів.
Сьогодні розповім про технічну частину питання, застосувавши яку, ви зможете конвертувати сайт на Бітрікс в кодування UTF-8.
Але перш хочу висловити подяку Волкову Сергію і Шаромова Денису, матеріали яких допомогли в підготовці цієї статті.

Увага! Редагувати файли сайту необхідно через ftp або ssh.

А тепер приступимо.

1. Зробіть резервну копію і обов'язково включите в неї базу даних і всі файли сайту.

2. Якщо ви використовуєте вітруальной хостинг, попросіть техпідтримку встановити наступні параметри:

Якщо ви використовуєте віртуальну машину Бітрікс, можна встановити їх самостійно.

3. Видаліть модулі "Пошук" без збереження таблиць і "Веб-аналітика" (без збереження таблиць, але зі збереженням шаблонів повідомлень).

4. Видалити зі словника трансліта в модулі "Форум" (Сервіси> Форуми> Фільтр нецензурних слів> Словник трансліта) букву 'е', яка має ID = 7.

5. Змінити в регіональних настройках кодування з windows-1251 на utf-8.

Зміна кодування бітрікс на utf8

В налаштуваннях сайту обов'язково повинна бути обрана відповідна регіональна настройка.

6. Додати в /bitrix/php_interface/dbconn.php:


7. Завантажити в кореневу директорію сайту скрипт convert_utf8.php. запустити його і дочекатися повного його виконання.
Першим кроком перевіряються права на зміну файлів, другим проходить конвертація всіх файлів сайту і останнім - зміна кодування бази даних.
Якщо у вас дуже велика база даних, її конвертація може зайняти дуже довгий час або ж взагалі не закінчитися успішно. В такому випадку міняємо кодування бази вручну наступним чином. В панелі адміністратора на сторінці "SQL-запит" виконуємо наступний запит:


Де database_name - ім'я вашої база даних.
Цей запит виведе на сторінку новий запит, який потрібно буде виконати на цій же сторінці:

Зміна кодування бітрікс на utf8

Копіюйте все рядки нового запиту (не забудьте вимкнути режим батьківського контролю на висновок кількості записів на сторінці) і виконайте отриманий новий запит. По завершенні виконання все таблиці бази будуть переведені в кодування UTF-8.

8. Пропишіть в /bitrix/php_interface/after_connect.php:


9. Пропишіть в /bitrix/php_interface/after_connect_d7.php: