Incorrect string value: '\xF0\x9F\x91\x8C' for column

在datagrip中的具體報錯

[2019-01-15 10:26:35] [HY000][1366] Incorrect string value: '\xF0\x9F\x91\x8C' for column 'xxxx' at row 1
[2019-01-15 10:26:35] [HY000][1300] Invalid utf8 character string: 'F09F91'
[2019-01-15 10:26:35] [HY000][1366] Incorrect string value: '\xF0\x9F\x91\x8C' for column 'address' at row 1

原因是我在輸入的時候加了一個

👌

這個導致無法存儲
搜到使用utf8mb4字符集可以解決,但我使用這個字符集的時候沒有解決,實際上,之前早就是這個字符集了。
繼續查到文章 emoji字符無法寫入Mysql數據庫問題

經過在網上查詢,\xF0\x9F開頭的確實是UTF8字符集範圍;UTF8長度是2-4個字節,我們在Mysql常用的是2-3個字節長,但這個拋出來的錯誤顯示是4個字節,所以就錯在這了(用java寫代碼也會報同樣錯誤,原因是jdbc在做數據插入前會嚴格檢查字段的類型、長度,一但不符就會拋出異常;

然後在這篇文章中 MySQL插入emoji表情錯誤的2種解決方案,Incorrect string value: ‘\xF0\x9F\x98\x84’
在這裏插入圖片描述
想起原來工程裏有的emoji依賴,應該是處理這類問題的

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章