Mysql проблема с кодировкой

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

Такие слова, как Гояния, стали Гояни, а концептуально стали концепциями.

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

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

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

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

Команда, используемая для восстановления на сервере 2 mysql -u root -p database_name

2 ответа

Решение

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

--default-символьного набора =latin1

или же

--default-символьного набора =utf8

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

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

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

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

Другие вопросы по тегам