Оригинальный способ изменения кривой кодировки 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кб)
Рубрики: Wordpress & Софт Метки: Wordpress, глюки, инструкция
Распечатать
Записи по теме
50 комментариев
Комментарии не по теме удаляются! Читайте реадми дистрибутива, комментарии и FAQ! Прежде чем задавать глупые вопросы, прочитайте это. Научитесь ценить чужое время!

(голосов: 10, средний: 4.40 из 5)

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
тоесть как читается нормально?
я не могу русские символы прочитать – кракозябра…
чем ее читать чтобы русские символы читались?
NPP++ не читает!
20 мая 2009 в 18:30 (GMT+6)
Vagur, дамп в мыло пульни
7 июля 2009 в 18:46 (GMT+6)
Всё работает на УРА! пришлось конечно скосить 2007 Ворд. Но это того стоило. Всё прошло гладко как и на видео. Большое спасибо
После восстановления БД на хостере часть таблицы перекатилась с utf8 в latin1_swedish_ci (в частности весь контент оказался в этой кодировке)
Перепробовал уже все возможные методы-но результата 0
Вообщем один большой Need Help!!!
16 июля 2009 в 20:33 (GMT+6)
если восстанавливали автоматически то бывает так криво. вручнуб обычно нормально заливается архивный дамп (после пересохранения в нормальной кодировке)
Так дело в том что и не я восстанавливал. Восстанавливал хостер, после блокировки хостинг-аккаунта. Я так понял что при архивации у них с моей БД случилась такая “бяка”, как latin1_swedish_ci во всех “контентных” таблицах.
В итоге мне досталось это “восстановленное чудо”, которое пока никак не хочет приводиться в читабельный вид.
16 июля 2009 в 20:52 (GMT+6)
я про то и пишу что хостеры часто через Ж восстанавливают сами. попросите у них дамп файлом и на мыло скиньте мне
Ну аргументом кривого восстановления было: Суть проблемы в том, что мы имеем дело с не совсем стандартной инсталляцией WordPress. Кодировка подключения к базе не была задана в явном виде (строка определения кодировки UTF8 в конфигурационном файле закомментирована). В результате этого в базу, с описанием таблиц UTF8 клались данные в кодировке Latin1. Кроме того, некоторые таблицы базы били созданы в кодировке Latin1. Если такую комбинацию не трогать – она будет работать до первого переноса/восстановления.
Запросил. Как вышлют-перенаправлю.
6 февраля 2010 в 19:50 (GMT+6)
Ну парень – выручил. Огромная благодарность!