Как перевести сайт на 1С-Битрикс в кодировку UTF-8
Как перевести сайт на 1С-Битрикс в кодировку UTF-8
Перевод сайта на 1С-Битрикс с Windows-1251 в UTF-8 — ответственная задача, требующая аккуратного подхода. Эта инструкция поможет минимизировать риски и выполнить переход правильно.
Зачем переходить на UTF-8? Корректное отображение всех символов (включая экзотические языки и смайлики). Работа с современными сервисами, интеграциями, API. Лучшее индексирование поисковиками и поддержка мультиязычности. Перспективность: Bitrix официально рекомендует работать в UTF-8.
Рекомендовано разрабатывать сайт на 1С-Битрикс в кодировке UTF-8. Вот аргументы:
Почему стоит выбирать UTF-8:
- Совместимость с современными технологиями и сервисами.
- Легкая мультиязычность: поддерживает все мировые языки без проблем с кодировками.
- Корректное отображение символов на мобильных устройствах и сторонних сервисах.
- Долгосрочная поддержка самого Битрикса: новые версии и модули ориентированы именно на UTF-8.
- SEO и интеграция: поисковые системы и сторонние модули корректнее взаимодействуют с UTF-8.
Когда оправдано использование Windows-1251?
- Только если проект изначально работает в этой кодировке и имеется множество наработок в Windows-1251.
- Если есть жесткие требования по совместимости со старыми системами, ориентированными только на Windows-1251.
Итог
Если вы начинаете новый проект на 1С-Битрикс — выбирайте только UTF-8.
Если переносите/альтернативно развиваете старый проект — возможно, стоит оставить Windows-1251, но это нежелательно.
Как перевести сайт на 1С-Битрикс в кодировку UTF-8
Перевод сайта на 1С-Битрикс с Windows-1251 в UTF-8 — ответственная задача, требующая аккуратного подхода. Эта инструкция поможет минимизировать риски и выполнить переход правильно.
Зачем переходить на UTF-8?
- Корректное отображение всех символов (включая экзотические языки и смайлики).
- Работа с современными сервисами, интеграциями, API.
- Лучшее индексирование поисковиками и поддержка мультиязычности.
- Перспективность: Bitrix официально рекомендует работать в UTF-8.
Этап 1. Подготовка и резервное копирование
Обязательно сделайте полную резервную копию сайта
- База данных (через phpMyAdmin или скриптом)
- Все файлы сайта
Этап 2. Перевод базы данных в UTF-8
-
Выгрузите базу данных в SQL-файл.
- В phpMyAdmin выберите вашу БД > Экспорт > SQL.
-
Откройте SQL-файл в редакторе (например, Notepad++, Sublime Text).
-
Замените упоминания кодировки и сравнения:
CHARSET=cp1251
илиCHARSET=windows-1251
замените наCHARSET=utf8
COLLATE=cp1251_general_ci
замените наCOLLATE=utf8_general_ci
-
Сохраните SQL-файл в кодировке UTF-8 без BOM.
- В редакторе выберите “Сохранить как”: UTF-8.
-
Удалите старую БД и создайте новую с кодировкой UTF-8.
- В phpMyAdmin: при создании выберите
utf8_general_ci
.
- В phpMyAdmin: при создании выберите
-
Импортируйте изменённый SQL-файл в новую базу.
Этап 3. Перевод файлов сайта в UTF-8
-
Преобразуйте все PHP, HTML, JS, CSS, CSV и другие текстовые файлы в UTF-8 без BOM.
- Удобно использовать редакторы с массовой перекодировкой (Notepad++, Sublime Text, Total Commander с плагином, iconv и т.д.).
- Важно: не перекодируйте бинарные файлы (jpg, zip и пр.).
-
Проверьте, чтобы во всех файлах не было BOM (Byte Order Mark).
- UTF-8 без BOM предпочтительнее для PHP!
Этап 4. Исправление настроек Битрикс
- Переопределите параметр SITE_CHARSET в настройках:
- В
/bitrix/.settings.php
либоbitrix/php_interface/dbconn.php
проверьте строку:define("SITE_CHARSET", "UTF-8");
- В
- Проверьте в шаблонах (обычно в
/bitrix/templates/.../header.php
) тег:<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
Этап 5. Проверка работоспособности
- Откройте сайт — проверьте отображение меню, статей, форм.
- Тестируйте добавление/редактирование новых данных — они должны сохраняться и отображаться корректно.
- Проверьте админку, публичную часть, модули, интеграции.
- Исправьте найденные артефакты (кракозябры, неправильные символы).
- Проверьте sitemap.xml, rss-фиды, robots.txt и другие служебные файлы.
Возможные проблемы и решения
- "Кракозябры" вместо текста: Проблема в неправильной кодировке файла или базы данных, либо где-то осталась старая кодировка.
- Ошибка базы “Incorrect string value”: проверьте, что все таблицы, поля и соединение к БД работают в UTF-8.
- Не открывается сайт: возможно, не все файлы переведены в нужную кодировку, или где-то неправильный charset.
Вывод
Процесс перевода сайта с Windows-1251 на UTF-8 требует внимательности, но после успешного завершения ваш сайт станет современнее, удобнее и технологичнее.
Если проект крупный — обязательно тестируйте всё на тестовой копии, а на живую версию переносите только после полной проверки.
Пример команды для массовой перекодировки файлов на сервере (Linux):
find ./ -type f -name "*.php" -exec iconv -f cp1251 -t utf-8 "{}" -o "{}.utf8" \;
Перед использованием таких команд — сделайте бэкап!

