码迷,mamicode.com
首页 > 移动开发 > 详细

移动端的emoji表情符号插入MySQL数据库失败

时间:2017-07-15 15:58:03      阅读:272      评论:0      收藏:0      [点我收藏+]

标签:database   exception   符号   decode   去掉   发展   row   sql数据库   失败   

插入数据时候报了错:### Error updating database. Cause: Java.sql.SQLException: Incorrect string value: ‘\xF0\x9F\x98\x84’ for column ‘bak2’ at row 1

这是因为:移动端的emoji表情符号是4个字节,而MySQL的utf8编码最多3个字节,所以插入不进去

解决方法:

1:让用户都主流些,去掉那些乱七八糟的表情。。。不大可能

2:过滤掉非主流字符。。。不太人性化

3:将MySQL的编码从utf8转换成utf8mb4,可以从根本上解决问题,具体如何转换参考如下文章: 
http://www.it165.net/database/html/201405/6581.html 
http://www.it165.net/database/html/201408/7544.html 
http://www.it165.net/database/html/201408/7550.html 
http://www.w 2 bc.com/Article/8533

4:我的解决方法:由于数据库已经建好了,有了大量正式数据,安全起见,我是通过转码的方式解决的,入库前encode一下,出库前decode一下。虽然略显繁琐,但是问题也能解决。

通过这件事,给我的启示:在移动互联网迅速发展的今天,为了避免emoji表情入库失败问题,涉及移动相关的数据库在建表之前建议都采用utf8mb4字符集。 
http://m.blog.csdn.net/blog/everything_is_ok/42454451

移动端的emoji表情符号插入MySQL数据库失败

标签:database   exception   符号   decode   去掉   发展   row   sql数据库   失败   

原文地址:http://www.cnblogs.com/grimm/p/7182700.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!