SkyDarkAngel Цитата: А если не страдать, а слить базу Dumper-ом на локал, на серваке поменять кодировку таблиц, на локале слитый файл перевести в win-1251 и залить тем же Dumper-ом (с принудительным переводом в ВИН) обратно?
Трудно, не зная броду, лезть в воду - вот так и я.
С MySQL столкнулся только сейчас, из-за форума. Пришлось перечитать кучу всего.
В дампе часть данных была в utf8, а именно таблицы настроек, а остальное - в win-1251. Поэтому получалось, что на форуме всё отражалось правильно кроме того, что было в настройках (администрирование вообще вслепую), - правила форума, надписи "важно" и т.п. При попытке конвертировать только этот кусочек дампа некоторые буквы - "ш", например, - терялись. Конвертировал сторонними программами.
Решение пришло неожиданно, всего через несколько тонн прочитанных страниц.
Для таких нубов, как я. Ключ к пониманию: получить текст без привязки к кодировке (так называемый бинарный), а потом привязать к нужной кодировке.
Для начала можно посмотреть, действительно ли это ошибки кодировки, вот таким запросом:
SELECT CONVERT(CONVERT(`conf_extra` USING binary) USING cp1251) FROM `pref_ipbconf_settings`
Запрос показывает содержимое поля "conf_extra" из таблицы "pref_ipbconf_settings", конвертируя его вначале в binary, потом, например, в utf8. Таким образом, если все данные таблиц легко просматриваются, а в этом поле крякозябры - то так подбирается нужная (целевая) кодировка, к которой типа я стремлюсь. Чтобы была одинакова со всеми остальными.
Когда определился с кодировкой (например, как у меня, все данные были в cp1251, а таблица настроек лежала в utf8), то сделал каждому полю трепанацию:
ALTER TABLE `pref_ipbconf_settings` CHANGE `conf_extra` `conf_extra` BLOB;
ALTER TABLE `pref_ipbconf_settings` CHANGE `conf_extra` `conf_extra` TEXT CHARACTER SET cp1251
т.е., данные поля вначале сконвертировались в BLOB (отвязал от кодировки), потом - в cp1251.
Так пришлось поиграться со всем таблицами (вернее, их полями), выбивающимися кодировкой из общей кодировки базы.
Щас всё чики-пики.
Зачем я так подробно о своих действиях.
Очень трудно знать всё. Сайт мой - это бесплатный для города, я просто не могу поддерживать ненужный государству регион, наняв профи за свой счет. Поэтому лезу сам, куда могу.
Сколько братьев-славян и других братьев в моём положении... Сколько времени теряют на мелочь, которую профи локализуют быстро. Поэтому пусть я помогу так, как могу. Тогда наши народы чуть поднимутся, а не будут кормиться информационными объедками из "развитых" стран. Вот.