在閱讀本文之前,先去了解下《在mysql中,「utf8編碼」並不是真正意義上的utf8》。
讓我們先了解下mysql字符集方面的內容:
mysql字符集範圍
伺服器層(server) > 資料庫成(database) > 資料表(table) > 字段(column) > 連線(connection) | 結果集(result)
mysql字符集優先順序
連線(connection) | 結果集(result) > 字段(column) > 資料表(table) > 資料庫成(database) > 伺服器層(server)
所以,當我們看到表的編碼為utf8mb4時,依然儲存不了emoji表情,就要檢視欄位的編碼和連線的編碼是否為utf8m64。
執行以下語句,檢視表的所有欄位的編碼:
可以看到表中部分欄位是utf8_general_ci
編碼,部分欄位是utf8mb4_general_ci
編碼,其中有些字段沒有指定。沒有指定的字段會預設採用表設定的編碼。
現在步入正題,假如我們希望字段name
能儲存emoji表情,現在從圖中看到它的編碼是utf8_general_ci,我們執行以下語句,將它的編碼調整為utf8mb4_general_ci
。
alter table member modifyname
varchar(255) charset utf8mb4 comment 『使用者姓名』;
然後在jfinalconfig
的繼承子類的configplugin
方法裡面增加druidplugin
一行配置:
druidplugin.setconnectioninitsql(「set names utf8mb4」);
這樣即可。
mysql 儲存emoji表情
phenomenon 當儲存帶emoji表情的資料時,mysql提示儲存失敗。solution 更改對應欄位的字符集 alter table xx modify columnremarkvarchar 256 character set utf8mb4 collate utf8mb4 unicode...
Mysql支援emoji表情儲存
正常使用uft 8方式儲存是不能儲存emoji表情文字的,主要原因是uft8位元組不夠,導致儲存不了,需要更改為uft8mb4,下面說說具體操作步驟 1 需要你的mysql資料庫版本在5.5以上 2 更改你的資料庫,表,以及需要儲存emoji列的編碼方式 對每乙個資料庫 alter database...
MySql支援Emoji表情儲存
utf8mb4和utf8的區別如下 utf8乙個字元最多3位元組,而utf8mb4則擴充套件到乙個字元最多能有4位元組,所以能支援更多的字符集。mysql 需要支援 emoji 表情符號版本需要大於5.5.3,且字符集需要設定為utf8mb4 字符集。1 設定資料表結構字符集 alter table...