Я использую MySQL 5.1.58 в Debian Sqeeze и пытаюсь восстановить дамп базы данных. Как только он восстановлен, я заметил, что все акцентированные символы стали другими символами как cha или è: совершенно разные.
Посмотрев на дамп, я увидел, что проблема не в импорте, а в экспорте, потому что в дампе были странные символы.
Я экспортировал этот дамп из другой установки MySQL (5.5) на ArchLinux. Я также пробовал использовать аргумент --default-character-set = 8tf8 в mysqldump, но это не сработало.
Заранее спасибо.
Это обычная проблема с mysqldump
. Вместо того, чтобы использовать utf8
в качестве кодировки по умолчанию используйте latin1
. Также вы можете использовать -N
(в котором будет указано SET NAMES
), так что закодированный текст не будет повторно закодирован mysql. То есть:
mysqldump -u username -p --default-character-set=latin1 -N database > backup.sql
mysql -u username -p --default-character-set=latin1 database < backup.sql
(источник)