Назад | Перейти на главную страницу

Проблема с кодировкой mysql

Я пытаюсь импортировать данные с одного сервера на другой. Но при этом у меня проблемы с кодировкой.

Такие слова, как Goiânia, стали Goià ni, а Conceição - Conceiç £ o.

Мое приложение было настроено на использование кодировки latin1

Сервер 1: Кодировка MySQL: UTF-8 Unicode (utf8) сопоставление таблиц: latin1_swedish_ci

Сервер 2: Кодировка MySQL: UTF-8 Unicode (utf8) сопоставление таблиц: latin1_swedish_ci

Команда, которую я использовал для экспорта данных с сервера 1 mysqldump -u root -p --default-character-set = iso-8859-1 имя_базы_данных> db.sql

Команда, используемая для восстановления на сервер 2 mysql -u root -p имя_базы_данных <db.sql

В зависимости от версии mysql вы хотите использовать:

--default-character-set = latin1

или

--default-character-set = utf8

В некоторых версиях mysqldump есть странная ошибка, когда указание utf8 в командной строке приведет к двойному кодированию таблицы, уже закодированной как utf8, которая была исправлена ​​около года назад в 5.0.51+, если я помню.

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

Дважды проверьте сопоставление и кодировку в server 1. Похоже, это другой формат, и даже если вы заставляете другой (iso-8859-1) при экспорте это не могло работать. Дважды проверьте его на таблице, базе данных и т. Д.

Позвольте мне знать, если это помогает.