国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

微信nickname亂碼(emoji)及mysql編碼格式設置(utf8mb4)解決的過程

xiaotianyi / 1101人閱讀

摘要:自己的練習項目中涉及保存微信的,之前一直正常使用,但是突然遇到一個之前沒有遇到的問題。經過調試發現錯誤如下經過仔細查看發現可以獲得的數據,但是無法保存到數據庫,查看用戶的微信發現在中使用了字符。上查找發現主要解決方案就是的編碼設置由轉為。

自己的練習項目中涉及保存微信的nickname,之前一直正常使用,但是突然遇到一個之前沒有遇到的問題。經過調試發現錯誤如下:

Incorrect string value: "xF0x9Fx99x88xF0x9F..." for column "nickname" at row 1
經過仔細查看發現可以獲得nickname的數據,但是無法保存到mysql數據庫,查看用戶的微信發現在nickname中使用了emoji字符。
到百度(只能用這個,其他的麻煩呀。)上查找發現主要解決方案就是MySQL的編碼設置由utf8轉為utf8mb4。
具體解釋可見:[詳細emoji表情與utf8mb4的關系][1] ,寫的非常全面詳細。

網上的解決辦法大多是修改my.cnf參數,設置mysql的編碼為utf8mb4,這種方法雖然徹底,但是通常要重啟mysql,會造成生產系統臨時當機。我認為寫的比較好的方法是:mysql/Java服務端對emoji的支持,一般可參考以上方法。文章中的關鍵點也說的比較清楚。

下面是我的處理方法:
要求:

1.MySQL的版本不能太低,低于5.5.3的版本不支持utf8mb4編碼。select version();
2.JDBC驅動版本不能太低,mysql connector版本高于5.1.13。

    mysql
    mysql-connector-java
    5.1.38


3.將表中的對應字段,比如會員表的呢稱字段,其字符集修改成utf8mb4。
4.最后修改druid數據源的配置,增加一行:




5.檢查下jdbc連接串的設置:

jdbc:mysql://localhost:3306/dbname?useUnicode=true&characterEncoding=utf8

這里要注意:有人建議刪除useUnicode=true&characterEncoding=utf8,但好像我這里會發生保存數據時發生亂碼的現象。

本文重要參考:mysql : utf8mb4 的問題

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/65614.html

相關文章

  • Emoji編碼常見問題處理

    摘要:題外話補充一點是一種字符編碼方法,它是由國際組織設計,可以容納全世界所有語言文字的編碼方案。帶有的字符串截取在這類編程語言中一個中文字符的長度為,但是對大部分的并非全部取長度則是。 我在虎嗅上看過一篇關于Emoji的趣聞, 特別有意思, 在這里跟大家分享一下。里面提到了Emoji是怎么誕生的。 1999年前后,日本一個名叫栗田穰崇的年輕人,和許多直男一樣, 給女友發的短信經常會被誤解。...

    wemall 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<