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

場景:java

最近在作一個微信商城mysql

技術框架:jfinal 2.2 + jfinal weixin 1.7 +freemarker+mysql+sui;sql

同步微信用戶信息時發現,微信用戶暱稱有特殊字符的用戶 記錄不能入庫;數據庫

Caused by: java.sql.SQLException: Incorrect string value: '\xF0\x9F\x8D\xAC\xE8\x95...' for column 'nickname' at row 1微信

記得建庫建表的時候都是選擇utf8 字符集;框架

特地搜索了下,是由於暱稱中含emoji 表情的緣由;ui

http://blog.itpub.net/26230597/viewspace-1243233/spa


特此備註下;.net

問題分析總結:
    ㈠ 緣由
        普通的字符串或者表情都是佔位3個字節,因此utf8足夠用了,可是移動端的表情符號佔位是4個字節,普通的utf8就不夠用了,爲了應對無線互聯網的機遇和挑戰、避免 emoji 表情符號帶來的問題、涉及無線相關的 MySQL 數據庫建議都提早採用 utf8mb4 字符集,這必需要做爲移動互聯網行業的一個技術選型的要點
    ㈡ 限制
        須要 >= MySQL 5.5.3版本、從庫也必須是5.5的了、低版本不支持這個字符集、複製報錯。blog

相關文章
相關標籤/搜索