让Mysql支持Emoji表情的办法简析[MySQL防范]
本文“让Mysql支持Emoji表情的办法简析[MySQL防范]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
声明:我的文章都是在实际工作中碰到并办理问题后撰写的,大概你早就一清二楚了,也大概对你没有任何帮忙,喜好就请顶一下,不喜也请勿喷.就像足球一样, 不喜好中国足球的就请不要关注,你可以去看乒乓球、羽毛球,乃至,冰壶!但不要去骂他们,毕竟还有很多人痴心地喜好国足,我就是此中之一.
===正文===
近来在做一个iPhone上的项目,我负责后端,Java开辟,DB用的是Mysql,版本5.5.21,编码用的是UTF-8. www.110hack.com
但发现了一个问题,iPhone上有Emoji表情,插入Mysql时失利了,报以下非常:
Java代码
java.sql.SQLException: Incorrect string value: '\xF0\x9F\x92\x94' for column 'name' at row 1
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1073)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3593)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3525)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1986)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2140)
at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2620)
at com.mysql.jdbc.StatementImpl.executeUpdate(StatementImpl.java:1662)
at com.mysql.jdbc.StatementImpl.executeUpdate(StatementImpl.java:1581)
上百度Google一下,终于找到了答案.UTF-8编码有大概是两个、三个、四个字节.Emoji表情是4个字节,而Mysql的utf8编码最多3个字节,所以数据插不进去.办理筹划就是:将Mysql的编码从utf8转换成utf8mb4.网上应当能搜到一大堆改正Mysql编码的办法.
我是这么做的,大概有些改正没有必要,但终究我还是办理了问题:
1. 改正my.cnf
[mysqld]
character-set-server=utf8mb4
[mysql] www.110hack.com
default-character-set=utf8mb4
改正后重启Mysql
2. 以root身份登录Mysql,改正环境变量,将character_set_client,character_set_connection,character_set_database,character_set_results,character_set_server 都改正成utf8mb4
3. 将已经建好的表也转换成utf8mb4
号令:alter table TABLE_NAME convert to character set utf8mb4 collate utf8mb4_bin; (将TABLE_NAME替换成你的表名)
至此,OK了!
作者 RamosLi
以上是“让Mysql支持Emoji表情的办法简析[MySQL防范]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |