【Mysql】存儲emoji表情報錯(Incorrect string value: '\xF0\x9F\x98\x82\xF0\x9F...')的解決方案

問題分析

普通的字符串或者表情都是占位3個字節,所以utf8足夠用了,但是移動端的表情符號占位是4個字節,普通的utf8就不夠用了,為了應對無線互聯網的機遇和挑戰、避免 emoji 表情符號帶來的問題、涉及無線相關的 MySQL 數據庫建議都提前采用 utf8mb4 字符集,這必須要作為移動互聯網行業的一個技術選型的要點

Mysql 版本的限制,Mysql 5.5.3之前的版本,支持的utf8為3字節的,Mysql 5.5.3之后的版本支持utf8mb4

解決方案

修改mysql的配置文件,windows下的為my.ini(linux下的為my.cnf),修改的內容都一樣

[client]

default-character-set = utf8mb4

[mysql]

default-character-set = utf8mb4

[mysqld]

character-set-server = utf8mb4

collation-server = utf8mb4_unicode_ci

將數據庫中對應的字段,改為utf8mb4_general_ci

修改項目中的連接數據庫的url,將characterEncoding=utf-8去掉,此步驟一定要進行

Incorrect string value: '\xF0\x9F\x98\x82\xF0\x9F...' for column 'question' at row 1

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容