Конвертация из 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. php.ini (если Beget - изменить в настройках хостинга)

    default_charset = "utf8"
  10. .htaccess (если виртуальный)

    php_value default_charset utf-8
    php_value mbstring.internal_encoding UTF-8
  11. dbconn.php

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

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

  14. В Adminer - поменять кодировку базы на utf8_unicode_ci

  15. Если ошибка «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
  16. after_connect.php

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

    $connection = Bitrix\Main\Application::getConnection();
    $connection->queryExecute('SET NAMES "utf8"');
    $connection->queryExecute('SET collation_connection = "utf8_unicode_ci"');
    $connection->queryExecute("SET sql_mode=''");
    $connection->queryExecute("SET innodb_strict_mode=0");
    
  18. Сбросить весь кеш;

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

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

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

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

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

Комментарии (0)

Похожие решения:
Изменено: 12 06 2023
Просмотров: 3928