jfinal emoji 表情儲存失敗解決方案

2021-09-24 09:21:11 字數 1099 閱讀 7678

在閱讀本文之前,先去了解下《在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 modifynamevarchar(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...