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

相关文章
相关标签/搜索