Да? А какую База latin1. поверх залили cp1251. Сделали дамп в utf-8 залили дамп в utf-8 кодировка таблиц latin1 кодировка клиента cp1251 Вопрос - ну ка исправь мне кодировку.
Берешь текстовый столбец (TEXT или VARCHAR) и преобразовываешь его в бинарное поле (BLOB и VARBINARY соответсвенно, если я не путаю типы) Берешь получившийся столбец и преобразуешь его обратно с нужной тебе кодировкой.
Этот фокус позволяет изменить кодировку поля без автоматического преобразования кодировки содержимого. То есть если было записано 0xF5 то так оно там и останется. Но если ранее оно означало *нечитаемый символ*, то теперь оно станет *читаемый символ*.
А вот дамп в утф... хрен его знает как он все это обработает. Вроде у меня как-то получалось вернуть после дампа и восстановления.
Надо на клиенте делать в обязательном порядке "SET NAMES кодировка_вебсервера". Дальше все автоматически получится правильно, вне зависимости от используемых кодировок.
Это когда у тебя есть возможность сказать --default-character-set=ololo А когда дам cpanel сделала? Потом опять же. База в latin1. Поверх лежит cp1251 -default-character-set=latin1 надо ставить. И в дамп set names cp1251 писать. И кодировку таблиц поправить в дампе.
Comments
У меня даже гдето-был однажды скриптик сделан антиненатуральный чтобы в базе кодировку делать нормальную в таких случаях :)
База latin1. поверх залили cp1251. Сделали дамп в utf-8
залили дамп в utf-8
кодировка таблиц latin1
кодировка клиента cp1251
Вопрос - ну ка исправь мне кодировку.
Берешь текстовый столбец (TEXT или VARCHAR) и преобразовываешь его в бинарное поле (BLOB и VARBINARY соответсвенно, если я не путаю типы)
Берешь получившийся столбец и преобразуешь его обратно с нужной тебе кодировкой.
Этот фокус позволяет изменить кодировку поля без автоматического преобразования кодировки содержимого. То есть если было записано 0xF5 то так оно там и останется. Но если ранее оно означало *нечитаемый символ*, то теперь оно станет *читаемый символ*.
А вот дамп в утф... хрен его знает как он все это обработает. Вроде у меня как-то получалось вернуть после дампа и восстановления.
Как предоствращать?
А когда дам cpanel сделала?
Потом опять же. База в latin1. Поверх лежит cp1251
-default-character-set=latin1 надо ставить. И в дамп set names cp1251 писать. И кодировку таблиц поправить в дампе.
>Потом опять же. База в latin1. Поверх лежит cp1251
Я какбэ имел в виду, что "set..." надо делать ДО, а не после того, как херня уже случилась:)