Преобразование базы данных из одной кодировки символов в другую

У меня есть база данных MYSQL. Текст в настоящее время хранится в кодировке latin1, сопоставление latin1_swedish_ci. Это значения по умолчанию, и это не было проблемой в тот день, когда база данных была первоначально создана.

Я хочу переключиться на UTF8, чтобы кодировка текста в базе данных соответствовала кодировке текста, используемой в другом месте на веб-сайте, использующем базу данных.

Мой вопрос в том, какие проблемы у меня возникнут при преобразовании данных и на что мне следует обратить внимание, когда я это сделаю. Большая часть нашего текста умещается в простом acsii, но, вероятно, есть случайные символы с акцентом...

Я думаю, что также было бы разумно попросить совета о том, как лучше всего изменить данные.


person Rik Heywood    schedule 21.10.2009    source источник


Ответы (2)


Если вы конвертируете из ASCII в UTF-8, я ожидаю, что, за исключением некоторых символов с акцентом, все будет в порядке. По моему опыту, вернуться назад — проблема.

person Community    schedule 21.10.2009
comment
Итак, mysql позаботится обо всех деталях, преобразуя любые символы с диакритическими знаками в соответствующую кодировку utf8, оставив мне таблицу правильно закодированных символов utf8? - person Rik Heywood; 21.10.2009
comment
Теоретически да. Я перешел с ASCII на UTF в унаследованной базе данных MySQL 4.x, и, похоже, это ничего не сломало. - person ; 21.10.2009

Будьте внимательны, если вы перемещаете данные в другую таблицу. Если кодировка таблицы будет, например. latin1, и вы случайно поместили туда сырой UTF8, будет больно перекодировать его в правильную кодировку (если у вас нет исходных данных).

person Pavlo Svirin    schedule 21.10.2009