移動端的emoji表情符號插入MySQL資料庫失敗

2022-09-16 00:51:10 字數 549 閱讀 3132

插入資料時候報了錯:### error updating database. cause: j**a.sql.sqlexception: incorrect string value: 『\xf0\x9f\x98\x84』 for column 『bak2』 at row 1

這是因為:移動端的emoji表情符號是4個位元組,而mysql的utf8編碼最多3個位元組,所以插入不進去

解決方法:

1:讓使用者都主流些,去掉那些亂七八糟的表情。。。不大可能

2:過濾掉非主流字元。。。不太人性化

3:將mysql的編碼從utf8轉換成utf8mb4,可以從根本上解決問題,具體如何轉換參考如下文章:   

4:我的解決方法:由於資料庫已經建好了,有了大量正式資料,安全起見,我是通過轉碼的方式解決的,入庫前encode一下,出庫前decode一下。雖然略顯繁瑣,但是問題也能解決。

通過這件事,給我的啟示:在移動網際網路迅速發展的今天,為了避免emoji表情入庫失敗問題,涉及移動相關的資料庫在建表之前建議都採用utf8mb4字符集。 

前端處理emoji表情符號(儲存,不儲存)

1.不需要儲存,只可以輸入中文等 更換正則即可 var reg u4e00 u9fa5 g if reg.test this val 2.需要儲存 有些時候由於後端資料庫編碼集顯示,前端直接將表情符號等傳到後端再次傳輸回來已經是亂碼,無法進行回顯,所以需要前端進行處理 解決方案 前端對獲取到的字串進...

emoji表情符號MYSQL資料庫的處理

資料庫編碼格式utf 8 儲存報錯 incorrect string value xf0 x9f x88 xb2 for column at row 1 原因 emoji表情符號為4個位元組的字元,而 utf8 字符集只支援1 3個位元組的字元,導致無法寫入資料庫。多麼痛的領悟?對的 永遠不要在my...

MySQL資料庫讀寫Emoji表情符號報錯

1 mysql的版本 utf8mb4的最低mysql版本支援版本為5.5.3 若不是,請公升級到較新版本。2 mysql驅動 5.1.34可用,最低不能低於5.1.13 開始沒修改mysql的配置檔案 導致伺服器的mysql驅動jar包只能用5.1.13版本,公升級版本就會報錯,坑死 3 修改mys...