mysql 存emoji表情 utf8mb4

emoji表情存入數據庫的亂碼問題詳解
從mysql讀取emoji表情顯示?的問題詳解

寫作目的

  • 原有數據庫已經設計好,且已經存入過數據,現在也想存入emoji表情,不適合編碼存入,解碼輸出。所以選擇修改數據庫字符集的方法,utf8mb4 [footnote]

執行方法

  • 數據庫修改

配置文件修改my.cnf

[client]
default-character-set = utf8mb4
[mysqld]
character-set-client-handshake = false
character-set-server = utf8mb4
init_connect='SET NAMES utf8mb4'
[mysql]
default-character-set = utf8mb4

修改完成,到數據庫確認

數據庫、表、字段修改

ALTER DATABASE 數據庫名 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci;
use xxxdb;
ALTER TABLE 表名 CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
ALTER TABLE 表名 CHANGE 字段名 字段名 該字段原來的數據類型 CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
  • 程序引用時設置取值方法 set names utf8mb4
  • 導入導出注意事項
mysqldump –default-character-set-utf8mb4 –u 用戶名 –p 數據庫名 > 導出該文件的物理路徑;導入的命令不需要指明編碼格式,只需要正常的執行命令便可

總結:這樣修改之後,就可以保存emoji數據了,在程序修改db文件的時候,需要確定是在版本庫的文件,沒有忽略提交的文件,否則存入成功,取出會一直顯示問號(?)。如果存入就是問號,那說明配置沒有成功,需要再次重啓mysql,或者關閉再啓動

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章