如果想要在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...