正常使用uft-8方式儲存是不能儲存emoji表情文字的,主要原因是uft8位元組不夠,導致儲存不了,需要更改為uft8mb4,下面說說具體操作步驟:
1、需要你的mysql資料庫版本在5.5以上;
2、更改你的資料庫,表,以及需要儲存emoji列的編碼方式;
# 對每乙個資料庫:
alter
database 這裡資料庫名字 character
set = utf8mb4 collate = utf8mb4_unicode_ci;
# 對每乙個表:
alter
table 這裡是表名字 convert to
character
set utf8mb4 collate utf8mb4_unicode_ci;
# 對儲存emoji表情的字段:
alter
table 這裡是表名字 change 欄位名字 欄位名字 varchar(191) character
set utf8mb4 collate utf8mb4_unicode_ci;
utf8mb4完全向後相容utf8,無亂碼或其他資料丟失的形式出現。理論上是可以放心修改,如果您不放心修改,您可以拿備份恢復資料
3、修改my.ini資料庫配置
新增如下配置
[client]
default-character-set = utf8mb4
[mysql]
default-character-set = utf8mb4
[mysqld]
character-set-client-handshake = false
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
4、修改伺服器資料庫連線配置
把連線上面的characterencoding=utf-8去掉
5、重啟mysql資料庫
這個時候應該就可以儲存emoji表情了,你還可以登入資料庫,查詢看下
show variables where variable_name like
'character\_set\_%'
or variable_name like
'collation%';
如下:
還可以查詢下具體的表,如下,文字欄位已是uft8mb4;
最後,還可以用以下兩條命令對錶進行修復和優化,跑到這一步其實沒有任何必要修復和優化表,為了保險起見,我還是執行了這兩條命令,雖然不知道它有什麼卵用,放在這裡做個筆記吧
repair table 表名字;
optimize table 表名字;
Mysql支援emoji表情
教程所示使用的是 github 倉庫,網速過慢的朋友請 原文 mysql 支援 emoji 表情。更多討論或者錯誤提交,也請移步。最近為部落格新增了emoji表情,所以需要資料庫支援utf8mb4編碼。伺服器安裝的資料庫是mysql 5.7。網上很多方法是通過命令列設定字符集編碼格式,但是經過嘗試,...
Mysql支援emoji表情
教程所示使用的是 github 倉庫,網速過慢的朋友請 原文 mysql 支援 emoji 表情。更多討論或者錯誤提交,也請移步。伺服器安裝的資料庫是mysql 5.7。網上很多方法是通過命令列設定字符集編碼格式,但是經過嘗試,都以失敗告終。摸索後發現,需要更改mysql的配置檔案。首先,備份原來的...
MySql支援Emoji表情儲存
utf8mb4和utf8的區別如下 utf8乙個字元最多3位元組,而utf8mb4則擴充套件到乙個字元最多能有4位元組,所以能支援更多的字符集。mysql 需要支援 emoji 表情符號版本需要大於5.5.3,且字符集需要設定為utf8mb4 字符集。1 設定資料表結構字符集 alter table...