Один из наших давних проектов был когда то собран на базе CMS 1С-Битрикс – Управление сайтом, который был установлен на хостинг с настройками СУБД MySQL по-умолчанию. Поэтому база данных этого проекта имела кодировку latin1. Чтобы данные корректно отображалсь на страницах сайта в настройках соединения 1С-Битрикс был установлен запрос: SET NAMES cp1251.
После редизайна этого проекта возникло желание собрать сайт заново и на платформе 1С-Битрикс в кодировке utf-8. Отсюда встала задача конвертирования базы данных из latin1 в utf8. Конечно можно было так же прописать: SET NAMES cp1251, но всё-таки желание иметь возможность просмотра данных через любые клиенты СУБД победило. [spoiler] Были предприняты неоднократные попытки поиска способов конвертации, но ни один из них не давал нужного результата. Тогда, немного подумав, я понял, что для конвертирования можно частично использовать саму CMS 1С-Битрикс, которая как-то же успешно работает с этими данными. Для этого я воспользовался средством CMS для создания резервной копии и создал дамп базы данных.
Дамп базы данных, как и следовало ожидать, получился в кодировке windows-1251, и данные уже легко читались текстовым редактором. После этого нам осталось воспользоваться следующими командами ОС Linux:
Конвертирование файла в utf8
iconv -f cp1251 -t UTF-8 dump.sql > dump_utf8.sql
Замена кодировки создаваемых таблиц из cp1251 на utf8
Таким образом у нас получился дамп базы данных в кодировке utf8, который можно успешно восстановить. __________________________________ Оригинал статьи размещен в моем блоге.
Группы на сайте создаются не только сотрудниками «1С-Битрикс», но и партнерами компании. Поэтому мнения участников групп могут не совпадать с позицией компании «1С-Битрикс».