Четыре года назад я преобразовал базу данных MySQL 4.0 (в которой также не было понятия о кодировке символов) в MySQL 5.0, поэтому BTDT.
Но, прежде всего, нет кодировки символов "ANSI" ; это неправильное представление и неправильное употребление, которое появилось в ранних версиях Windows (есть escape-последовательности ANSI , но они не имеют ничего общего с кодировкой символов). Вы наверняка смотрите на Windows ‑ 1252 кодированный текст. Вы должны преобразовать этот текст в UTF ‑ 8, так как тогда у вас будет больше шансов сохранить все используемые символы в целости (UTF ‑ 8 - это кодировка Unicode , а Unicode содержит все символы, которые можно кодировать с помощью Windows-125x , но в разных точках кода).
Я использовал обе программы iconv
и recode
(в системе Debian GNU / Linux, на которой работал сервер MySQL) для преобразования закодированного в Windows ‑ 1252 текста экспорта MySQL (созданного phpMyAdmin) в UTF -8. Используйте любую программу или комбинацию программ, которая вам больше подходит.
Что касается ваших вопросов:
- Вы можете попробовать, но это может не сработать. В частности, у вас могут возникнуть проблемы с открытием большого дампа базы данных с помощью Notepad ++ или другого текстового редактора.
- Зависит.
ALTER TABLE … CONVERT TO …
делает больше, чем просто преобразование кодировок.
- См. Параграф выше.
- Да. Вы должны установить кодировку символов каждой таблицы и каждого текстового поля, в которое вы импортируете данные, на
utf8
(используйте любое сопоставление utf8_…
, соответствующее вашим целям или данным лучше всего). ALTER TABLE … CONVERT TO …
делает это. (Но см. 2.)
- Я не думаю, что
MYSQL323
имеет значение здесь, поскольку ваш экспорт будет содержать только операторы CREATE
, INSERT
и ALTER
. Но сначала проверьте руководство (значок «?» Рядом с настройкой в phpMyAdmin). latin1
означает «Windows-1252» в MySQL 5.0 , так что может работать, и вы должны пропустить руководство преобразование import затем.
- Я так не думаю; PHP еще не поддерживает Unicode . Важно то, как данные обрабатываются скриптом PHP. Обычно поле заголовка
Content-Type
для ваших сгенерированных текстовых ресурсов, использующих эти данные, должно заканчиваться на ; charset=UTF-8
.
На дополнительном примечании вы больше не должны использовать MySQL 5.0.x. Текущая стабильная версия - MySQL 5.5.18 . «В соответствии с политикой жизненного цикла поддержки MySQL, активная поддержка MySQL 5.0 закончилась 31 декабря 2009 года . MySQL 5.0 сейчас находится в фазе расширенной поддержки. » Альфа-версия MySQL 5.0.0 была выпущено 2003-12-22, Расширенная поддержка, как ожидается, закончится 8 полных лет после этого, 2011‑12‑31 (в этом году) .