суббота, 9 февраля 2013 г.

проблема с кодировкой msql

Устанавливаем кодировку, в которую хотите преобразовать таблицы, в данном случае utf8.

Во вкладке «Экспорт» выбираем нужные таблицы.

Изменение кодировкиТакже часто встречающаяся проблема преобразования кодировки из cp1251 в UTF-8. До выполнения этого шага обязательно убедитесь, что русские символы у вас правильно показываются в Sypex Viewer или phpMyAdmin, если это не так, то предварительно исправьте кодировку.Итак, опять заходим в Sypex Dumper.

Данные и таблицы в utf8, но кодировка соединения latin1Теперь рассмотрим более запущенный случай. Набирающая популярность в последнее время проблема, в связи с повальным увлечением UTF-8. Создатели софта стали переводить свои детища на UTF-8, но и тут не всё так гладко, как хотелось бы. Возникает проблема в основном в случае, когда у таблиц указана кодировка UTF-8, данные в UTF-8, но кодировка соединения установлена по умолчанию latin1 (типичный пример, vBulletin 4, хоть там и есть в конфигах настройка кодировки соединения, но она закомментирована по умолчанию).В результате в MySQL присылаются данные в UTF-8, но поскольку указана кодировка соединения latin1, то MySQL пытается преобразовать данные из latin1 в UTF-8. В итоге русские символы выглядят так:Ситуация более запущенная, но исправляется проблема почти также, как в первом случае, только в пункте 2 нужно выбрать кодировку latin1, а в пункте 6 нужно выбрать utf8 кодировку.

Вот и всё заходим в Sypex Viewer, чтобы убедиться, что русские символы выводятся корректно.

Нажимаем «Выполнить».

Выбираем кодировку cp1251 и помечаем опцию «Коррекция кодировки».

Выбираем только что сделанный файл бэкапа.

Переходим на вкладку «Импорт»

Нажимаем «Выполнить». Теперь у нас есть бэкап (его в любом случае желательно делать при любых преобразованиях базы данных).

Кодировка должна быть auto (остальные параметры неважны, можно комментарий добавить, например, «Дамп перед исправлением кодировки»).

На вкладке «Экспорт» выбираем нужные таблицы.

также бывают случаи, когда переезжают с одного сервера (у которого установлена дефолтная кодировка cp1251, в частности, так сделано в Денвере) на другой (у которого стоит стандартная кодировка latin1).В результате на сайте вроде как всё нормально, но если посмотреть в Sypex Viewer, то русские символы будут выглядеть как «кракозябры» (как их обычно называют пользователи).В статье я рассмотрю один из вариантов преобразование кодировок с помощью бесплатного php-скрипта , в качестве готового решения.

очень часто возникает в «буржуйских» скриптах, которых вполне устраивает кодировка по умолчанию, и они «забывают», что неплохо бы указывать кодировку, как таблиц, так и соединения;

при неграмотном обновлении с версии MySQL меньше 4.1 на более новые;

Данные в cp1251 таблицы в latin1Наверное, самая популярная проблема. Когда данные в кодировке cp1251 (Windows-1251), а у таблиц указана кодировка по умолчанию latin1. Такие ситуации возникают в следующих случаях:

Небольшое отступление. Sypex ViewerВ какой-то момент надоело отправлять людей в громоздкий phpMyAdmin, и была написана крошечная утилитка . Она представляет собой один PHP-файл, использует современные Web 2.0 технологии AJAX, JSON и другие. Основные задачи, которые ставилась при создании минимальный вес, и максимальное удобство и скорость работы. В дальнейшем в примерах будут скриншоты из неё, но все те же действия можно сделать и в phpMyAdmin.

В данной статье мы рассмотрим как бороться с наиболее часто встречающиеся случаями проблем с кодировками в MySQL. Или как часто говорят пользователи боремся с кракозябрами.В статье описывается не то, как первоначально правильно настроить кодировки MySQL (об этом уже довольно много написано), а о случаях, когда есть довольно большие таблицы с неправильными кодировками и нужно всё исправить.Самое плохое в неправильно настроенных кодировках то, что зачастую проблему сложно обнаружить, и с первого взгляда может казаться, что сайт работает правильно, и никаких проблем нет.

Исправление и преобразование кодировок таблиц MySQL

Sypex Dumper 2 / Исправление и преобразование кодировок таблиц MySQL

Комментариев нет:

Отправить комментарий