91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

Emoji表情符號入MySQL數據庫報錯的解決方案

發布時間:2020-08-15 08:21:52 來源:ITPUB博客 閱讀:373 作者:bestpaydata 欄目:MySQL數據庫

    auther:Jane.Hoo
    上周有開發人員反饋一個問題:前臺應用抓取微博信息,每天總有幾條數據插入不成功。應用日志顯示:
  java.sql.SQLException: Incorrect string value: '\xF0\x9F\x92\xAA",...' for column 'raw_json' at row 1, 異常:org.springframework.jdbc.UncategorizedSQLException:
  其中raw_json字段顯示如下:

Emoji表情符號入MySQL數據庫報錯的解決方案

  由上圖可知,插入的字段里面包含emoji表情符。基本可以判定是字符編碼的問題。我們的數據庫里面使用的是utf8編碼,普通的字符串或者表情都是占位3個字節,所以utf8足夠用了,但是移動端的表情符號占位是4個字節,普通的utf8就不夠用了,為了應對無線互聯網的機遇和挑戰、避免 emoji 表情符號帶來的問題、涉及無線相關的 MySQL 數據庫建議都提前采用utf8mb4 字符集,這必須要作為移動互聯網行業的一個技術選型的要點。

utf8與utf8mb4說明:
  UTF- 8:Unicode Transformation Format-8bit,允許含BOM,但通常不含BOM。是用以解決國際上字符的一種多字節編碼,它對英文使用8位(即一個字節),中文使用24為(三個字節)來

編碼。UTF-8包含全世界所有國家需要用到的字符,是國際編碼,通用性強。UTF-8編碼的文字可以在各國支持UTF8字符集的瀏覽器上顯示。如,如果是UTF8編碼,則在外國人的英文IE上也能

顯示中文,他們無需下載IE的中文語言支持包。
  UTF8MB4:MySQL在5.5.3之后增加了utf8mb4的編碼,mb4就是most bytes 4的意思,專門用來兼容四字節的unicode。
  

既然找到了原因就來執行吧.既然只有raw_json列含表情符,就先修改此列的字符集:
 ALTER TABLE xx_pnl_weibo_usershow  MODIFY ` raw_json` varchar(3000) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci ;
  改完后測試,插入失敗。
  修改表的字符集:
  alter table xx_pnl_weibo_usershow CHARSET=utf8mb4 ;
  改完后測試,插入失敗。
  修改庫級別的字符集
  vi /etc/my.cnf
  [client]
  default-character-set=utf8mb4
  [mysqld]
  character-set-server = utf8mb4
  service mysqld restart
  改完后測試,插入成功。
  emoji表情編碼參考: 

  http://punchdrunker.github.io/iOSEmoji/table_html/flower.html

 因為是線上生產業務,需要先在測試環境做好測試工作。避免業務高峰期,線上申請停機窗口操作。



向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

资阳市| 绥棱县| 东兰县| 大余县| 即墨市| 内丘县| 凭祥市| 柏乡县| 青神县| 无极县| 高要市| 宜兰市| 锡林浩特市| 玛沁县| 彰化市| 洪洞县| 太仆寺旗| 新蔡县| 中山市| 临洮县| 邢台县| 扎赉特旗| 苗栗县| 大荔县| 永善县| 陇南市| 从化市| 孝义市| 绿春县| 永康市| 广河县| 寿光市| 福建省| 班玛县| 金乡县| 平顺县| 治县。| 紫云| 邵武市| 营山县| 同江市|