MySQL中儲存emoji表情

2021-10-02 18:55:44 字數 1181 閱讀 9523

如果想要在mysql資料庫中儲存表情這種字元,若字符集編碼utf8或者其他字符集,當執行插入資料庫操作就會拋錯

incorrect string value: '\xf0\x9f...' for column '***' at row 1
這是因為這些字元所占用的位元組數大於3,而utf8最大支援為3個位元組,所以插入過程無法有效完成,導致錯誤。

mysql在5.5.3版本後增加了utf8mb4的編碼,專門用來相容4位元組的unicode。其實,utf8mb4是utf8的超集,理論上原來使用utf8,然後將字符集修改為utf8mb4,也不會對已有的utf8編碼讀取產生任何問題。【cmd   mysql --help】可以檢視windows安裝mysql版本。。

所以如果要mysql支援emoji特殊字元只需要設定utf8mb4編碼即可。這裡有三處需要修改的地方:

1、修改mysql配置檔案my.ini:

# created and no character set is defined

character-set-server=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'

有的版本可能沒有這樣的配置資訊,手動新增即可。

2、修改資料庫支援utf8mb4:

alter database databasename character set = utf8mb4 collate = utf8mb4_unicode_ci;
3、修改對應表支援utf8mb4:

alter table tablename convert to character set utf8mb4 collate utf8mb4_unicode_ci;
最後,重啟mysql服務。

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...