溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

java存儲emoji表情解決方案

發(fā)布時間:2020-07-12 20:23:21 來源:網(wǎng)絡(luò) 閱讀:4203 作者:huangjinjin520 欄目:軟件技術(shù)

1、問題產(chǎn)生情況
在開發(fā)IM時有些有用的頭像用了emoji表情或者聊天的時候用了emoji表情,然而mysql數(shù)據(jù)庫用的編碼是utf8_general_ci,就是utf-8編碼,結(jié)果也就報錯誤了。emoji表情存不了在數(shù)據(jù)庫。

java.sql.SQLException: Incorrect string value: '\xF0\x9F\x92\xAA",...' for column 'raw_json' at row 1

2、為什么會出現(xiàn)這種原因
因為mysql的utf8編碼的一個字符最多3個字節(jié),但是一個emoji表情為4個字節(jié),所以utf8不支持存儲emoji表情。但是utf8的超集utf8mb4一個字符最多能有4字節(jié),所以能支持emoji表情的存儲。

3、解決方案

方案一:修改數(shù)據(jù)庫的編碼集設(shè)置為utf8mb4,無論是數(shù)據(jù)庫還是表,還是字段。雖然會增加存儲,但是這個可以忽略不計。

方案二: 有時候原因不能修改數(shù)據(jù)庫編碼之類的,可以用java對emoji表情進(jìn)行轉(zhuǎn)化編碼,例如emoji-java這種對emoji表情進(jìn)行特殊處理的jar哦,然后保存或者去掉表情,這也是一種折中的解決方案。

emoji-java的下載地址: https://github.com/vdurmont/emoji-java

java存儲emoji表情解決方案

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI