Я использую MySQL 5.5.29, кодировку utf8mb4, есть таблица user, содержащая поле nickname
со значением hex F09F988EF09F988E
, которое переводится в смайлики ????????.
Теперь откройте консоль MySQL и выполните:
set names utf8mb4;
select nickname, hex(nickname) from user;
nickname | hex(nickname)
---------+-----------------
???????? | F09F988EF09F988E
А затем выполните:
mysqldump --default-character-set=utf8 -utest -ptest test_dev user > user.sql
Проверьте user.sql
и найдите отображение псевдонима ??
, шестнадцатеричная строка которого равна 3f
Итак, как mysqldump с UTF8 может экспортировать правильную строку смайлика?
btw, envionments кодировки базы данных настроены следующим образом: показать такие переменные, как 'character_set_%':
'character_set_client', 'utf8mb4'
'character_set_connection', 'utf8mb4'
'character_set_database', 'utf8mb4'
'character_set_filesystem', 'binary'
'character_set_results', 'utf8mb4'
'character_set_server', 'utf8mb4'
'character_set_system', 'utf8'
'character_sets_dir', '/data/mysql/share/charsets/'