Оригинальный способ изменения кривой кодировки latin1 в ваших базах mysql на UTF8 или CP1251

Кроме манипуляций с импортом-экспортом и перекодировкой базы WordPress с помощью шаманства, существует и другой способ. Процесс долгий, но результат 100%-ый. Сегодня меня попросили перекодировать одну базу (не WordPress), которая также была когда то создана в неправильной кодировке latin1 и при переезде на новый хостинг, где в базе кодирова cp1251 (например мастерхост) и сайт превратился в кашу из мусора. Попробовав сначала рекомендации из различных форумов решил попробовать на кусочке текста во всем знакомом творении компании МС под именем Microsoft Word (использовался Word2003, но должно работать и на остальных версиях). Дело в том что в Ворде существует замечательная система восстановления поврежденного текста, которая не раз выручала при открытии файлов, созданных в древних версиях того же Ворда. Опыт над кусочком базы прошел успешно и я запустил процесс над всем файлом. Для статистики – размер базы на входе 5мб, на выходе при сохранении в Windows-1251 получилось 3,6мб. Весь процесс на компьютере P4-3200/1gb pc5300 занял более 1,5часов. Все это время Ворд был в полуподвешенном состоянии и не подавал признаков жизни кроме медленно ползущего ползунка в диалоге конвертации. После того как все будет готово, мы меняем везде где требуется упоминание о кодировке как в примере ниже:

CREATE DATABASE `kakayatobaza` DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci;

на cp1251

CREATE DATABASE `kakayatobaza` DEFAULT CHARACTER SET cp1251 COLLATE cp1251_general_ci;

или utf8

CREATE DATABASE `kakayatobaza` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

проще всего это делать поиском-заменой

и сохраняем файл в соответствующей кодировке! Чтобы было все наглядно понятно, создал небольшую видеоинструкцию по применению.

смотреть в действии (всего 300кб)

Связанные записи

55 комментариев

Страницы: « 1 2 [3] Show All

  1. 36 mirra 21 января 2009 в 1:25 (GMT+6)

    ого! :)

    я перед тем как спросить пробовала как раз-таки вордом все варианты – и ничего не получилось.

    и как ворд опознал этот текст? как какую кодировку?


  2. 37 Lecactus 21 января 2009 в 1:35 (GMT+6)

    mirra, СЕРВИС-ИСПРАВИТЬ ПОВРЕЖДЕННЫЙ ТЕКСТ-РУССКИЙ(РОССИЯ) :)
    вы наверное не так делали что то – я просто скопировал ваш кусок текста и вставил в чистый документ. а если вы выбираете открытие документа то насколько помню надо выбирать либо UTF-8 либо Кирилица(вин-1251) – в общем чтобы в “примере” символы были похожие. на куске текста потренируйтесь.

    ЗЫ Или смените версию ворда :) в 2003-ей точно работает


  3. 38 mirra 21 января 2009 в 3:13 (GMT+6)

    О, спасибо!

    Целый день мучилась, а тут вон оно как! :) Все получилось.


  4. 39 Lecactus 16 февраля 2009 в 21:03 (GMT+6)

    если у вас стоит офис2007 то порядок действий немного другой для запуска команды “восстановления” – описано в этом посте http://forum.ru-board.com/topic.cgi?forum=5&topic=16945&start=720#5


  5. 40 Vagur 17 мая 2009 в 22:25 (GMT+6)

    если у вас стоит офис2007 то порядок действий немного другой для запуска команды “восстановления” – описано в этом посте http://forum.ru-board.com/topic.cgi?forum=5&topic=16945&start=720#5

    первый сайт делал в базе cp1251, сейчас после переезда на новый хостинг с php5 используется база UTF8. у меня вопрос, как из 1251 в UTF8 перекодировать?
    при все при том у меня стоит Oficce 2007.
    а то по вышеприведеной ссылке решение не нашел.


  6. 41 Lecactus 17 мая 2009 в 22:29 (GMT+6)

    Vagur, http://lecactus.ru/download/ms/eefonts.zip

    вообще если база в 1251 и вся читается в текстовом редакторе нормальном, то поиском-заменой замени везде cp1251_general_ci на utf8_general_ci и cp1251 на utf8 если есть отдельно, и сохрани файл в кодировке UTF8 без BOM и этот полученный дам уже загрузи в чистую базу, созданную также с правильным utf8_general_ci


  7. 42 Vagur 20 мая 2009 в 17:44 (GMT+6)

    Vagur, http://lecactus.ru/download/ms/eefonts.zip

    вообще если база в 1251 и вся читается в текстовом редакторе нормальном, то поиском-заменой замени везде cp1251_general_ci на utf8_general_ci и cp1251 на utf8 если есть отдельно, и сохрани файл в кодировке UTF8 без BOM и этот полученный дам уже загрузи в чистую базу, созданную также с правильным utf8_general_ci

    тоесть как читается нормально?
    я не могу русские символы прочитать – кракозябра…
    чем ее читать чтобы русские символы читались?
    NPP++ не читает!


  8. 43 Lecactus 20 мая 2009 в 18:30 (GMT+6)

    Vagur, дамп в мыло пульни


  9. 44 Виктор 7 июля 2009 в 18:46 (GMT+6)

    Всё работает на УРА! пришлось конечно скосить 2007 Ворд. Но это того стоило. Всё прошло гладко как и на видео. Большое спасибо


  10. 45 Vadim 16 июля 2009 в 17:31 (GMT+6)

    После восстановления БД на хостере часть таблицы перекатилась с utf8 в latin1_swedish_ci (в частности весь контент оказался в этой кодировке)

    Перепробовал уже все возможные методы-но результата 0

    Вообщем один большой Need Help!!!


  11. 46 Lecactus 16 июля 2009 в 20:33 (GMT+6)

    если восстанавливали автоматически то бывает так криво. вручнуб обычно нормально заливается архивный дамп (после пересохранения в нормальной кодировке)


  12. 47 Vadim 16 июля 2009 в 20:48 (GMT+6)

    если восстанавливали автоматически то бывает так криво. вручнуб обычно нормально заливается архивный дамп (после пересохранения в нормальной кодировке)

    Так дело в том что и не я восстанавливал. Восстанавливал хостер, после блокировки хостинг-аккаунта. Я так понял что при архивации у них с моей БД случилась такая “бяка”, как latin1_swedish_ci во всех “контентных” таблицах.

    В итоге мне досталось это “восстановленное чудо”, которое пока никак не хочет приводиться в читабельный вид.


  13. 48 Lecactus 16 июля 2009 в 20:52 (GMT+6)

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


  14. 49 Vadim 16 июля 2009 в 21:27 (GMT+6)

    я про то и пишу что хостеры часто через Ж восстанавливают сами

    Ну аргументом кривого восстановления было: Суть проблемы в том, что мы имеем дело с не совсем стандартной инсталляцией WordPress. Кодировка подключения к базе не была задана в явном виде (строка определения кодировки UTF8 в конфигурационном файле закомментирована). В результате этого в базу, с описанием таблиц UTF8 клались данные в кодировке Latin1. Кроме того, некоторые таблицы базы били созданы в кодировке Latin1. Если такую комбинацию не трогать – она будет работать до первого переноса/восстановления.

    попросите у них дамп файлом и на мыло скиньте мне

    Запросил. Как вышлют-перенаправлю.


  15. 50 Заратустра 6 февраля 2010 в 19:50 (GMT+6)

    Ну парень – выручил. Огромная благодарность!


  16. 51 kotyara 24 сентября 2010 в 19:22 (GMT+6)

    5 баллов, я уж думал писец пришел. спасибо, огромное. А то прислали млин дамп… мне аш плакать захотелось: дамп в кодировке утф, на сайте выставлена кодировка 1251, а в дампе указана кодировка латин1… криворукие говноделы! какие кодировки тока не перепробовал, как ни крутил, а кроме стрекозябликов ниче ни видать. А тут раз и все гут) прям благодарность)


  17. 52 Alleon 21 декабря 2010 в 23:46 (GMT+6)

    Огромное спасибо! Очень простой и действительно рабочий способ.


  18. 53 Niczshe 16 января 2011 в 19:03 (GMT+6)

    Иван, добрый вечер. Не знаю в какой теме написать, попробую сюда. У меня тоже вылазят различные кракозябры, но это происходит лишь тогда когда я провожу анализ страниц сайта на одном сервисе. Как думаешь стоит ли мне париться по этому поводу? Просто у всех нормально там отображается, а у меня нет. Вот здесь я уже писал о моей проблеме. Заранее спасибо!


  19. 54 Александр 30 сентября 2011 в 23:45 (GMT+6)

    а у меня с присоединенными файлами проблема!.. Присоединяю, отправляю.. На почте само сообщение читаемо а attachment – нет. Набор всяких символов!! Как побороть?


  20. 55 Football Helmet Visors 8 апреля 2012 в 2:03 (GMT+6)

    If Obama goes to help in Massachusetts Do the tax payers pick up the tab or does the Democratic party repay the US?? OH OH! has Obama given the money from his Nobel Prize to the US government?? I dont think he can keep the #1+ million dollar prize. So where is the money?? dont tell me is is going to charity because it isnt Obamas go give away>


Страницы: « 1 2 [3] Show All

Комментарии не по теме удаляются! Читайте реадми дистрибутива, комментарии выше и FAQ! Прежде чем задавать вопрос, прочитайте это. Научитесь ценить чужое время!

 Имя (обязательно)  EMAIL (обязательно)  АДРЕС ЛИЧНОГО БЛОГА

Вы соглашаетесь с правилами


При добавлении HTML|CSS|JS|PHP кода в комментарий, оформляйте его через кнопку КОД

 

Получать комментарии по RSS Адрес трэкбека