Конвертація сайту з cp1251 в utf8 в 1с-бітрікс

Конвертація сайту з cp1251 в UTF8 в 1С-Бітрікс

* Повідомлення блогу Дениса Шаромова в групі блогів для розробників 1С-Бітрікс

Незважаючи на те, що підтримка UTF8 з'явилася в продукті давно, залишаються багато проектів, зроблених на старій версії в cp1251. Теоретично зробити конвертацію не складно, проте можуть виникнути труднощі.
Відразу обмовлюся, що даний пост не претендує на статус офіційного документа, це повинно бути гарна підмога з проблеми.


  • Для роботи сайту на бітрікс в utf8 абсолютно необхідна наявність модуля mbstring в php (це є майже на будь-якому хостингу) і установка параметра

На VPS / виділеному сервері параметр без проблем змінюється в php.ini.

  • Обов'язково зробіть резервну копію працюючого сайту, а краще саме на копії проводите експерименти. Якщо щось піде не так - ви можете втратити дані!
  • Конвертація сайту з cp1251 в utf8 в 1с-бітрікс


    • Підготувати сервер як показано вище
    • Додати в /bitrix/php_interface/dbconn.php

  • Змінити в налаштуваннях сайту кодування з windows-1251 на utf-8
  • Змінити в налаштуваннях мови ru кодування з windows-1251 на utf-8
  • Конвертувати всі файли в utf8
  • Конвертувати БД в utf8
  • Змінити в /bitrix/php_interface/after_connect.php

    $ DB-> Query ( "SET NAMES 'cp1251'");

    $ DB-> Query ( "SET NAMES 'utf8'");


  • Скинути весь кеш
  • Вийти і зайти на сайт щоб оновити дані сесії
  • Практична сторона питання

    Після зміни кодування сайту публічна частина набуває вигляду:

    Конвертація сайту з cp1251 в utf8 в 1с-бітрікс

    Це нормально, браузер намагається показати дані не в тій кодуванні. Тепер після всіх дій зовнішній вигляд відновиться, і ми побачимо, що процес пройшов успішно.

    Велике число файлів треба конвертувати по кроках, для цього буду використовувати напрацювання для пошуку вірусів. За великим рахунком, тут треба тільки переробити функцію заміни в конвертацію через mb_convert_encoding.

    Примітка. Часто при використанні зовнішніх програм для конвертації в файли додається спеціальна послідовність символів, т.зв. BOM. Ці символи повинні знаходитися тільки спочатку файлу, а оскільки підсумкова html сторінка є складовою з декількох php файлів, то спецсимволи з'являються в тілі html сторінки. Якщо робите вручну - не зберігається з BOM!

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

    Конвертація сайту з cp1251 в utf8 в 1с-бітрікс

    Скрипт виконує операції:

    - Конвертувати всі файли в utf8
    - Конвертувати БД в utf8

    Решта слід робити вручну за списком в тому порядку, як написано.

    В результаті отримав картинку

    Конвертація сайту з cp1251 в utf8 в 1с-бітрікс

    При створенні сайту, ми формуємо Пакет Проекту. в який входить весь необхідний для роботи матеріал, а також додаткові бонуси.

    До складу Пакета Проекту входять:
    • CD-диск з вихідними матеріалами сайту, таблицею кольорів використовуваної колірної гами, шпалери на робочий стіл, відповідні стилю створеного проекту, а так само повна резервна копія сайту та Інструкція по управлінню сайтом.
    • Flash-карта на 1-Gb - В ПОДАРУНОК
    • Знижка 5% на будь-яку наступну послугу
    • Сертифікат на реєстрацію доменного імені

    Конвертація сайту з cp1251 в utf8 в 1с-бітрікс

    Розробка інтернет-магазинів з високою конверсією, інтеграція з 1С. Консалтинг в сфері організації та управління продажами - при замовленні кожного проекту. Замовити Інтернет-магазин

    Конвертація сайту з cp1251 в utf8 в 1с-бітрікс

    При замовленні декількох послуг - ми раді надати Вам додаткові знижки. Наприклад, при замовленні Створення сайту, Хостингу і Підтримки сайту - 10% знижка на всі послуги! Замовити Пакет послуг

    Конвертація сайту з cp1251 в utf8 в 1с-бітрікс

    Розробка унікального фірмового стилю будь-якого рівня. Створення логотипів і елементів фірмового стилю. Професійна розробка бренд-буку компанії. Замовити розробку