Конвертация из Windows-1251 в UTF-8 в Битрикс

Решение, как перевести сайт на Битрикс из кодировки cp1251 в UTF-8

Конвертация из Windows-1251 в UTF-8

Решение:
  1. Бекап (без сохранения поискового индекса и таблиц статистики);

  2. Проверка системы, чтобы не было ошибок — Параметры настройки UTF (mbstring и константа BX_UTF) Пример настроек под windows-1251

  3. Таблицы в InnoDB

  4. Оптимизировать таблицы

  5. Обновить Битрикс

  6. Удалить «Поиск» и «Веб-аналитика» без сохранения таблиц;

  7. Региональные настройки UTF-8

  8. До версии 20.100.0

    mbstring.func_overload 2
    mbstring.internal_encoding UTF-8
  9. dbconn.php

    define("BX_UTF", true);
  10. .settings.php

    utf_mode =>
        array(
            'value' => true,
            'readonly' => true,
        ),
  11. Конвертировать файлы: 
    Скрипт оригинал
    Скрипт без mbstring

  12. Если ошибка «MySQL Query Error!», конвертируем через: Adminer

    SELECT CONCAT('ALTER   TABLE `', t.`TABLE_SCHEMA`, '`.`', t.`TABLE_NAME`, '` CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci;') as
    sqlcode
    FROM `information_schema`.`TABLES` t
    WHERE 1
    AND t.`TABLE_SCHEMA` = '_______' ORDER BY 1
  13. after_connect.php

    $DB->Query("SET NAMES 'utf8'");
    $DB->Query('SET collation_connection = "utf8_unicode_ci"');
  14. after_connect_d7.php

    $connection = Bitrix\Main\Application::getConnection();
    $connection->queryExecute("SET sql_mode=''");
    $connection->queryExecute("SET innodb_strict_mode=0");
  15. .htaccess

    php_value default_charset utf-8
  16. php.ini

    default_charset = "utf8"
  17. Если Beget - изменить в настройках сайта;

  18. Сбросить весь кеш;

  19. Выйти и зайти, чтобы обновить данные сессии;

  20. Проверка системы — исправить ошибки;

  21. Установить «Поиск» и сделать переиндексацию;

  22. Установить «Веб-аналитика», если был ранее;

  23. Удалить convert_utf8.php и adminer

Похожие решения:
Изменено: 14 11 2022
Просмотров: 2971