auther:Jane.Hoo
上周有開發(fā)人員反饋一個(gè)問題:前臺(tái)應(yīng)用抓取微博信息,每天總有幾條數(shù)據(jù)插入不成功。應(yīng)用日志顯示:
java.sql.SQLException: Incorrect string value: '\xF0\x9F\x92\xAA",...' for column 'raw_json' at row 1, 異常:org.springframework.jdbc.UncategorizedSQLException:
其中raw_json字段顯示如下:
站在用戶的角度思考問題,與客戶深入溝通,找到勐臘網(wǎng)站設(shè)計(jì)與勐臘網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶體驗(yàn)好的作品,建站類型包括:成都網(wǎng)站制作、成都網(wǎng)站設(shè)計(jì)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、域名注冊(cè)、虛擬空間、企業(yè)郵箱。業(yè)務(wù)覆蓋勐臘地區(qū)。
由上圖可知,插入的字段里面包含emoji表情符?;究梢耘卸ㄊ亲址幋a的問題。我們的數(shù)據(jù)庫(kù)里面使用的是utf8編碼,普通的字符串或者表情都是占位3個(gè)字節(jié),所以u(píng)tf8足夠用了,但是移動(dòng)端的表情符號(hào)占位是4個(gè)字節(jié),普通的utf8就不夠用了,為了應(yīng)對(duì)無(wú)線互聯(lián)網(wǎng)的機(jī)遇和挑戰(zhàn)、避免 emoji 表情符號(hào)帶來(lái)的問題、涉及無(wú)線相關(guān)的 MySQL 數(shù)據(jù)庫(kù)建議都提前采用utf8mb4 字符集,這必須要作為移動(dòng)互聯(lián)網(wǎng)行業(yè)的一個(gè)技術(shù)選型的要點(diǎn)。
utf8與utf8mb4說(shuō)明:
UTF- 8:Unicode Transformation Format-8bit,允許含BOM,但通常不含BOM。是用以解決國(guó)際上字符的一種多字節(jié)編碼,它對(duì)英文使用8位(即一個(gè)字節(jié)),中文使用24為(三個(gè)字節(jié))來(lái)
編碼。UTF-8包含全世界所有國(guó)家需要用到的字符,是國(guó)際編碼,通用性強(qiáng)。UTF-8編碼的文字可以在各國(guó)支持UTF8字符集的瀏覽器上顯示。如,如果是UTF8編碼,則在外國(guó)人的英文IE上也能
顯示中文,他們無(wú)需下載IE的中文語(yǔ)言支持包。
UTF8MB4:MySQL在5.5.3之后增加了utf8mb4的編碼,mb4就是most bytes 4的意思,專門用來(lái)兼容四字節(jié)的unicode。
既然找到了原因就來(lái)執(zhí)行吧.既然只有raw_json列含表情符,就先修改此列的字符集:
ALTER TABLE xx_pnl_weibo_usershow MODIFY ` raw_json` varchar(3000) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci ;
改完后測(cè)試,插入失敗。
修改表的字符集:
alter table xx_pnl_weibo_usershow CHARSET=utf8mb4 ;
改完后測(cè)試,插入失敗。
修改庫(kù)級(jí)別的字符集
vi /etc/my.cnf
[client]
default-character-set=utf8mb4
[mysqld]
character-set-server = utf8mb4
service mysqld restart
改完后測(cè)試,插入成功。
emoji表情編碼參考:
http://punchdrunker.github.io/iOSEmoji/table_html/flower.html
因?yàn)槭蔷€上生產(chǎn)業(yè)務(wù),需要先在測(cè)試環(huán)境做好測(cè)試工作。避免業(yè)務(wù)高峰期,線上申請(qǐng)停機(jī)窗口操作。
網(wǎng)站標(biāo)題:Emoji表情符號(hào)入MySQL數(shù)據(jù)庫(kù)報(bào)錯(cuò)的解決方案
標(biāo)題鏈接:http://aaarwkj.com/article34/pjcsse.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站設(shè)計(jì)、關(guān)鍵詞優(yōu)化、全網(wǎng)營(yíng)銷推廣、網(wǎng)頁(yè)設(shè)計(jì)公司、虛擬主機(jī)、微信小程序
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)