emoji表情保存到mysql出錯的解決辦法
今天,在前端的說明信息中輸入emoji表情的時候,插入數據庫會報錯
百度了一下,是因為mysql數據庫的字符編碼集不正確,utf8無法存入表情字符,只能將字符集改為utf8mb4才可以,然后我們執行sql去改變數據庫
使用
SHOW VARIABLES WHERE Variable_name LIKE 'character_set_%' OR Variable_name LIKE 'collation%';
輸出
character_set_client utf8 character_set_connection utf8 character_set_database utf8 character_set_results utf8
然后我們執行sql:
set names utf8mb4;
再查詢一次,輸出:
character_set_client utf8mb4 character_set_connection utf8mb4 character_set_database utf8mb4 character_set_results utf8mb4
然后我們執行插入表情的sql,成功了!
程序解決方案
但是在程序中還是會有問題,看來我們需要改一些代碼了
我們知道執行 set names utf8mb4達到效果,接下來我們也去在程序中去執行該sql
那我們就需要在數據庫連接信息中加入該數據
然后,我們在mybatis的啟動類中在datasource中加入該數據,賦給initConnectionSqls屬性
然后,我們重新啟動項目,訪問后台,發現請求成功了!
該問題已經成功解決!!!