mysql 5.5.29,utf8mb4字符集,有一個表用戶包含字段暱稱,值爲十六進制F09F988EF09F988E即emojis。帶utf8的mysqldump無法導出正確的emojis字符串
現在打開mysql的控制檯,並執行:
集名稱utf8mb4;
從用戶選擇暱稱,十六進制(暱稱);
暱稱|十六進制(暱稱)
| F09F988EF09F988E
,然後執行mysqldump的--default-字符集= UTF8 -utest -ptest test_dev用戶> user.sql
檢查user.sql並找到暱稱顯示??其中十六進制字符串是3f
那麼,mysqldump如何用utf8導出正確的emojis字符串?
順便說一句,該數據庫字符集envionments配置如下: 顯示變量,如 'character_set_%': 'character_set_client字符', 'utf8mb4' '是character_set_connection', 'utf8mb4' 'character_set_database', 'utf8mb4' 'character_set_filesystem', '二進制' 'character_set_results', 'utf8mb4' '被character_set_server', 'utf8mb4' 'character_set_system', 'UTF8' 'character_sets_dir', '/數據/ MySQL的/共享/字符集/'
時會發生什麼1)您更改默認字符集「--default字符集= utf8mb4」 2)您可以直接導出到文件如 執行「mysqldump --default-character-set = utf8mb4 -utest -ptest test_dev user -r user.sql」 – Danack
另外,你有沒有嘗試重新導入數據?它可能只是因爲你的編輯器顯示的是問號,因爲它沒有正確的字體。 – Danack