原因找到了就很好辦,mysql5.5.3之後的版本支援utf8mb4編碼,這種編碼是utf8的公升級版,用的是4個位元組進行儲存。所以需要做的就是把mysql字符集從utf8公升級為utf8mb4就行了。
雖然utf8mb4相容utf8,但最好還是作個資料庫備份。
這個就不說了,根據你的伺服器系統做mysql公升級。
修改伺服器上mysql配置檔案my.conf(如ubuntu為例,一般在/etc/mysql/my.conf):
[client]改完要重啟mysql。#*** 已有配置
default-character-set =utf8mb4
[mysql]
#*** 已有配置
default-character-set =utf8mb4
[mysqld]
#*** 已有配置
character-set-client-handshake =false
character-set-server =utf8mb4
collation-server =utf8mb4_unicode_ci
init_connect='
set names utf8mb4
'
修改資料庫、表、列字符集:
alter這裡看到沒有修改列的字符集,因為我試過後發現,改了表的字符集後,表中列的字符集自動修改為utf8mb4了。database database_name character
set= utf8mb4 collate =
utf8mb4_unicode_ci;
alter
table table_name convert
tocharacter
set utf8mb4 collate utf8mb4_unicode_ci;
改完可以檢視一下:
這裡要確保紅框內變數值是utf8mb4。
可以看到列的字符集已經改過來了。
這個就根據情況自己檢查調整了。
把**中連線資料庫時的字符集設定為utf8mb4即可
讓MySql支援Emoji表情
解決方案 將mysql的編碼從utf8轉換成utf8mb4。需要 mysql 5.5.3版本 從庫也必須是5.5的了 低版本不支援這個字符集 複製報錯 停止mysql server服務 修改 my.cnf或者mysql.ini client default character set utf8mb4...
讓MySQL支援Emoji表情 mysql 5 6
首先將我們資料庫預設字符集由utf8 更改為utf8mb4,對應的表預設字符集也更改為utf8mb4 已經儲存表情的字段預設字符集也做了相應的調整。sql 語句如 修改資料庫 alter database database name character set utf8mb4 collate utf...
Mysql支援emoji表情
教程所示使用的是 github 倉庫,網速過慢的朋友請 原文 mysql 支援 emoji 表情。更多討論或者錯誤提交,也請移步。最近為部落格新增了emoji表情,所以需要資料庫支援utf8mb4編碼。伺服器安裝的資料庫是mysql 5.7。網上很多方法是通過命令列設定字符集編碼格式,但是經過嘗試,...