mysql資料庫中插入表情4個位元組的

2022-05-28 21:57:13 字數 670 閱讀 4882

這個問題,原因是utf-8編碼有可能是兩個、三個、四個位元組。emoji表情或者某些特殊字元是4個位元組,而mysql的utf8編碼最多3個位元組,所以資料插不進去。

我的解決方案是這樣的

[mysqld]

character-set-server=utf8mb4

[mysql]

default-character-set=utf8mb4

修改後重啟mysql

命令:更改資料庫編碼:alter database caitu99 character setutf8mb4collateutf8mb4_general_ci;

alter table table_name convert to character set utf8mb4 collate utf8mb4_bin; (將table_name替換成你的表名)

然後就ok了。網上流傳的乙個版本增加了乙個步驟,就是把mysql環境變數將character_set_client,character_set_connection,character_set_database,character_set_results,character_set_server 都修改成utf8mb4,不過我沒有做這一步,也正常,所以可能是這一步是多餘的,如果需要改,則按照下面介紹做修改。

原文章

emjoy表情插入資料庫問題

最近發現專案的錯誤日誌在第三方登陸的時候報錯,研究後發現是使用者名稱直接賦予第三方的使用者名稱中包含emoji表情導致的 原因 普通的字串或者表情都是佔位3個位元組,所以utf8足夠用了,但是移動端的表情符號佔位是4個位元組,普通的utf8就不夠用了,為了應對無線網際網路的機遇和挑戰 避免 emoj...

mysql資料庫儲存表情

讓資料庫能存表情 1.設定資料表字符集 為utf8mb4 unicode ci 2.修改配置 mysql配置檔案,把以下這些配置加到原配置的末尾,寶塔上修改的方式如下 客戶端 資料的預設字符集 default character set utf8mb4 mysqld 服務端預設字符集 charact...

mysql資料庫儲存表情設定

1.修改my.ini mysqld character set server utf8mb4 2.在connector j的連線引數中,不要加characterencoding引數。不加這個引數時,預設值就時autodetect。3.將已經建好的表也轉換成utf8mb4 命令 alter table...