Перевод в utf 8 битрикс

Правильная смена кодировки 1C-Bitrix с Windows-1251 (CP1251) на UTF-8

В последнее время, в процессе работы, я все меньше и меньше встречаю сайты, которые находятся в некогда популярной кодировке «Windows-1251», приоритетно используемой на русскоязычных ресурсах.

Если верить «Wikipedia» («Википедия» — свободная энциклопедия), на начало апреля 2019 года лишь на 1% всех веб-страниц используется эта кодировка.

Скрывать не буду, я в числе тех, кто так же не использует ее в своих проекта, и вот почему:

  1. Разные проблемы в процессе работы кода.
  2. Лишние действия при работе с кодом в текстовых редакторах.
  3. Отсутствие поддержки многих языков.
  4. Наличие ошибок в верстке сайта при его проверке через validator.w3.org.

Чтобы избежать этих (и не только) неприятных моментов, сегодня в этой статье я подробно расскажу вам, как перевести сайт под управлением CMS 1C-Bitrix из кодировки «Windows-1251» в «UTF-8».

1. Конвертацию (смену кодировки) в CMS 1C-Bitrix мы начнем с самого главного – создания полного бэкапа сайта (его файлов и базы данных).

2. Далее попросите поддержку хостинга установить для сайта следующие директивы:

Можно попробовать внести изменения и самостоятельно одним из следующих способов.

2.1. Первый вариант – для тех, кто использует хостинг Beget.

2.1.1. Авторизуйтесь в панели управления хостингом.

2.1.2. Перейдите в раздел «Сайты».

2.1.3. На открывшейся странице, напротив настраиваемого сайта нажмите на иконку «PHP N», где N – используемая версия PHP на вашем сайте.

2.1.4. В открывшейся форме либо вручную добавьте директивы:

либо в блоке «Применить оптимальные настройки для CMS:» выберите «Bitrix UTF-8» и сохраните изменение нажатием на кнопку «Применить».

2.2. Второй вариант – через конфигурационный файл php.ini. О том, как узнать адрес его местоположения на вашем хостинге, написано в этой нашей статье.

В нем вам необходимо найти и раскомментировать строки (удалить перед ними 😉 содержащие «mbstring.internal_encoding» и «mbstring.func_overload», после чего значения выставить на «UTF-8» и «2» соответственно, чтобы получилась следующая картина:

2.3. Третий вариант – через файл .htaccess, который находится в корневой папке сайта.

Если вы используете стандартный файл .htaccess и версия PHP на хостинге до 5.4, то найдите блок, похожий на:

И добавьте (или раскомментируйте, если такие строки уже есть, удалив перед ними #) следующие строки:

Если вы используете стандартный файл .htaccess и версия PHP на хостинге 7+, то найдите блок, похожий на:

Во всех остальных случаях попробуйте просто прописать следующие строки в самый верх этого же файла:

2.4. Четвертый вариант – через изменение настроек Apache (httpd.conf) – главный файл конфигурации хостинга/сервера. Его расположение может быть по разным путям, распространенные – это папки /usr/local/etc/apache/ и /etc/httpd/conf/. Более точную информацию на этот счет уточняйте у поддержки хостинга.

В нем для нужного виртуального хостинга (сайта) в блок «VirtualHost» вставьте следующие директивы:

4. Перейдите в раздел «Настройки» – «Настройки продукта» – «Модули».

На открывшейся странице удалите модули (если они используются на вашем сайте) «Поиск» (без сохранения таблиц) и «Веб-Аналитика» (без сохранения таблиц, но с сохранением шаблонов сообщений).

5. Если на вашем сайте установлен модуль «Форум», вам необходимо удалить букву «ё» из словаря транслита. Для этого в левом меню перейдите по пути «Сервисы» – «Форумы» – «Фильтр нецензурных слов» – «Словарь транслита», найдите и удалите букву из списка.

6. Далее переходите в «Настройки» — «Настройки продукта» – «Языковые параметры» – «Региональные настройки».

7. На открывшейся странице находите «ru» в столбце «Название» и щелкаете по нему один раз левой кнопкой мыши.

8. На открывшейся странице, в графе «Кодировка» пишите:

После чего сохраняете изменения нажатием на соответствующую кнопку.

После сохранения у вас (в административной части сайта и на самом сайте) могут появиться знаки вопроса – не пугайтесь, на данном этапе это нормальное явление.

9. Далее подключитесь к вашему сайту по FTP.

Источник

Конвертация сайта битрикс в кодировку UTF-8 (cp1251 в UTF8)

    Для работы сайта на битрикс в utf8 абсолютно необходимо наличие модуля mbstring в php (это есть почти на любом хостинге) и установка параметра

С этим может быть проблема т.к. с версии php 5.2.8 параметр меняется глобально на весь сервер (http://bugs.php.net/bug.php?id=47187). Уточните вопрос у хостера, но будьте осторожны если вам предложат CGI (см. «как выбрать хостера»).

На VPS/выделенном сервере параметр без проблем меняется в php.ini.

  • Обязательно сделайте резервную копию работающего сайта, а лучше именно на копии проводите эксперименты. Если что-то пойдёт не так — вы можете потерять данные!
    • Подготовить сервер как показано выше
    • Добавить в /bitrix/php_interface/dbconn.php
    $DB->Query(«SET NAMES ‘cp1251′» ;
    $DB->Query(«SET NAMES ‘utf8′» ;

    Практическая сторона вопроса

    После смены кодировки сайта публичная часть принимает вид:

    Это нормально, браузер пытается показать данные не в той кодировке. Теперь после всех действий внешний вид восстановится, и мы увидим, что процесс прошёл успешно.

    Большое число файлов надо конвертировать по шагам, для этого буду использовать наработки для поиска вирусов. По большому счёту, тут надо только переделать функцию замены в конвертацию через mb_convert_encoding.

    Примечание. Часто при использовании внешних программ для конвертации в файлы добавляется специальная последовательность символов, т.н. BOM. Эти символы должны находиться только вначале файла, а поскольку итоговая html страница является составной из нескольких php файлов, то спецсимволы появляются в теле html страницы. Если делаете вручную — не сохраняйте с BOM!

    Для конвертации базы надо сменить кодировку базы, всех таблиц и всех текстовых полей таблиц. Вручную это тоже делать на очень удобно. Решил сделать конвертацию файлов и базы в одном скрипте.

    Скрипт выполняет операции:

    Остальное следует делать вручную по списку в том порядке, как написано.

    Можно скачать по ссылке: convert_utf8.php

    В итоге получил картинку

    Теперь, словно, девушка даже слегка улыбнулась

    Обновление от 20.02.2012

    • Теперь конвертируются все файлы, не только языки. При этом делается авто определение кодировки файла, а значит можно выполнять конвертацию повторно.
    • Для кодировки базы указывается сравнение utf8_unicode_ci (требуется продуктом).
    • Исправлены ошибки конвертации базы.
    • Шаг конвертации файлов можно пропустить.

    Источник

    Изменение кодировки Битрикс с cp1251 на UTF-8

    Довольно часто встречается ситуация, когда сайт использует кодировку cp1251 (так как эта кодировка устанавливается по-умолчанию), и это не смотря на то, что «1C-Битрикс» уже более 10 лет поддерживает кодировку UTF-8.

    По большей части это довольно старые проекты, которые либо не обновлялись, либо прошли все этапы эволюции, но перейти на UTF-8 не смогли из-за ожидаемых технических сложностей.
    Сегодня мы расскажем Вам о том как сконвертировать сайт на Битрикс в кодировку UTF-8 с наименьшими трудозатратами.

    Внимание! Редактировать файлы сайта необходимо через ftp или ssh.

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

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

    2. Если вы используете витруальный хостинг, попросите техподдержку установить следующие параметры (на некоторых виртуальных хостингах активировать эти опции можно через файл .htaccess): Если вы используете виртуальную машину Битрикс, можно установить их самостоятельно.

    3. Удалите модули «Поиск» и «Веб-аналитика» (таблицы сохранять не нужно, а вот шаблоны сообщений сохраните).

    4. Удалить из словаря транслита в модуле «Форум» (Сервисы > Форумы > Фильтр нецензурных слов > Словарь транслита) букву ‘ё’, которая имеет >

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

    В настройках сайта обязательно должна быть выбрана соответствующая региональная настройка.

    6. Добавить в /bitrix/php_interface/dbconn.php:
    7. Загрузить в корневую директорию сайта скрипт convert_utf8.php , запустить его и дождаться полного его выполнения.
    Первым шагом проверяются права на изменение файлов, вторым проходит конвертация всех файлов сайта и последним — изменение кодировки базы данных.
    Если у вас очень большая база данных, ее конвертация может занять очень долгое время или же вообще не окончиться успешно. В таком случае меняем кодировку базы вручную следующим образом. В панели администратора на странице «SQL-запрос» выполняем следующий запрос:
    Где database_name — имя вашей база данных.
    Этот запрос выведет на страницу новый запрос, который нужно будет выполнить на этой же странице:

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

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

    9. Пропишите в /bitrix/php_interface/after_connect_d7.php:
    10. Пропишите в /bitrix/.settings.php:
    11. Очистите весь кеш сайта (скрипт конвертации после завершения предложит Вам ссылку для этого).

    12. Удалите скрипт convert_utf8.php.

    13. Установите модуль «Поиск» и сделайте переиндексацию.

    Источник

    Оцените статью
    ( Пока оценок нет )
    Поделиться с друзьями
    Uchenik.top - научные работы и подготовка
    0 0 голоса
    Article Rating
    Подписаться
    Уведомить о
    guest
    0 Комментарий
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии