У меня есть сервер, на котором размещена MySQL, сообщает PHPMyAdmin:
Server version: 5.1.56-community
MySQL charset: UTF-8 Unicode (utf8)
Я экспортирую sql, используя либо mysqldump -uroot -p database > file.dump
, либо mysqldump -uroot -p database -r file.dump
(в любом случае оба сгенерированных файла идентичны).
Локально я установил MySQL 5.5 и HeidiSQL 9.5.
Поскольку файл SQL сервера my.ini имеет:
default-character-set=utf8
Я изменил локальный файл my.ini, чтобы
default-character-set=utf8
Но также:
character-set-server=utf8
Они оба были установлены на latin1
. Не знаю, почему у меня здесь установлено character-set-server
, а на сервере нет. Так или иначе.
Теперь я запускаю HeidiSQL, он показывает utf8mb4
ссылок вместо utf8
для параметров сеанса. Я не знаю почему:
Теперь я импортирую свой файл дампа и вижу, что даже если все явно настроено в utf8
, похоже, у меня есть некоторые проблемы с кодировкой.
Специальные символы, такие как à
, неправильно отображаются в локальной базе данных.
Я делаю что-то неправильно?
Обратите внимание, что если я устанавливаю HeidiSQL на сервер, на вкладке переменных отображаются те же значения для параметров Session и Global, а à
отображается правильно.
Так что это может быть основной причиной проблемы, но я не знаю, как это исправить. Если я изменю значения Session перед импортом файла sql, это не решит проблему, а также значения вернутся к utf8mb4
, когда я снова запущу HeidiSQL.
à
выглядит правильно при выборе UTF-8 (по умолчанию). Похоже, что файл закодирован в UTF-8. - person jpo38   schedule 21.09.2018