用微信公众号开发举例,我们获取用户信息并且储存进数据库的时候,微信昵称由于可以使用emoji表情,utf-8编码可能2个字节、3个字节、4个字节的字符,但是MySQL的utf8编码只支持3字节的数据,而移动端的表情数据是4个字节的字符。如果直接往采用utf-8编码的数据库中插入表情数据,Java程序中将报SQL异常:

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)

虽然对数据库进行了一定配置修改,有时候还是会报一样的错误,查原因应该是由于手机系统不一样导致emoji表情编码不一样导致的这个问题,也可能是我没配置好的原因吧。

总而言之,这种方法不是特别推荐。

我个人推荐使用emoji-java去过滤这些emoji表情,maven配置如下

<dependency><groupId>com.vdurmont</groupId><artifactId>emoji-java</artifactId><version>4.0.0</version>
</dependency>

使用方法也非常简单,使用maven下载之后,在存储用户昵称的时候,使用如下方法过滤即可:

EmojiParser.removeAllEmojis(String wechatNickName)

关于微信一系列开发,emoji表情导致数据库报错个人解决办法相关推荐

  1. Oracle数据库备份报错12514,Oracle 数据库报错 ORA-12514解决办法

    Oracle 数据库报错 ORA-12514解决办法 绝对实用 如果orale数据库报ORA-12514 无监听程序 错误 就要listener.ora 和 tnsnames.ora 文件修改 一下如 ...

  2. python,使用微信远程控制电脑或使用微信定时发送消息关于QR.png报错的解决办法

    修改微信包itchat中的的utils.py文件,位置在--\Python35\Lib\site-packages\itchat\下,修改如下代码 把: def print_qr(fileDir):i ...

  3. Java | MySQL Emoji表情写入数据库时报错问题解决,Incorrect string value: ‘\xF0\x9F\x98\x84\xF0\x9F...‘ for column

    现象: 将Emoji表情存入数据库时,报如下错误: Cause: java.sql.SQLException: Incorrect string value: '\xF0\x9F\x99\x83\xF ...

  4. 存储emoji表情或特殊字符报错(Incorrect string value: ‘\xF0\x9F\x98\x82\xF0\x9F...‘)

    今天发生一件有趣的事情. 我的博客 我在一篇文章中使用了**emoji表情**,前面很顺利,不管是WordPress还是其他博客园啥的,都是正常发送. 但是,我在Typecho系统中发布文章时.... ...

  5. laravel 提交Request 请求后会莫名多出一个s参数,导致数据库报错问题的解决方法

    项目场景: apache运行laravel框架开发的系统. 问题描述: 提交post或者其他请求,会在request中存在s参数,导致数据库报错. 原因分析: apache的.htaccess文件中的 ...

  6. fundebug php,import提升导致Fundebug报错的解决方法(详细)

    本篇文章给大家带来的内容是关于import提升导致Fundebug报错的解决方法(详细),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 摘要: 解释一下"请配置apikey ...

  7. Xamarin开发安装Visual Studio 2015 update2报错的解决办法

    Xamarin开发安装Visual Studio 2015 update2报错的解决办法 错误信息:update 2 requires a member of the visual studio 20 ...

  8. 微信表情符号 mysql_Emoji表情符号入MySQL数据库报错的解决方案

    Emoji表情符号入MySQL数据库报错的解决方案 发布时间:2020-08-15 08:21:52 来源:ITPUB博客 阅读:136 作者:bestpaydata auther:Jane.Hoo ...

  9. mysql 苹果表情_mysql 插入emoji表情的时候报错问题。(苹果手机)

    一.问题现象 保存微信用户昵称到数据库,ios用户的昵称包含表情,插入数据库出错. 二.分析 使用JS过滤emoji表情的主要原因:input标签中输入emoji表情,提交表单后插入数据库报错. 原因 ...

最新文章

  1. Moses 里的参数(未完成)
  2. android studio 抓log,Android studio保存logcat日志到本地的操作
  3. hadoop集群中客户端修改、删除文件失败
  4. 解决 Tomcat 添加 Cookie 域名报错问题 : CookieProcessor
  5. cacti无密码登录
  6. activeMQ入门安装
  7. 常用的js自定义方法 -- hasClass addClass removeClass getElementsByClass
  8. JavaScript学习(八十七)—流程控制语句的总结,超级详细!!!
  9. 2012总结--目录
  10. JAVA Runtime.addShutdownHook()方法{拿到线程句柄,在程序关闭之前调用释放资源}
  11. DirectDraw 学习:
  12. 想要在工作中脱颖而出?这几款优秀的PC软件能够帮你
  13. 【Natural Language Processing】语言模型(Language Modeling)
  14. 坦克大战小游戏——新手练习用的
  15. 聚合搜索V3.0泛解析泛目录站群源码 MIP自动推送 SEO功能SEO源码
  16. 【无标题】c语言指针2333
  17. 常见API、正则表达式、Lanbda、算法
  18. Atom - 介绍和使用方法(好用的文本编辑器,代码提示高亮、Markdown)
  19. Android面试题和答案
  20. mysql sys模式_mysql8 参考手册-sys模式存储过程diagnostics()过程

热门文章

  1. WRF系列教程3:嵌套方式总结
  2. Codeforces 1182E Product Oriented Recurrence 矩阵快速幂
  3. t20天正结构v7.0破姐 安装教程
  4. c语言bnd文件,Unix环境下嵌入式C程序编译
  5. python金融分析试题_知到《Python金融数据分析》章节答案
  6. Ubuntu18 安装Kinect驱动(openni、NITE、Sensor)及遇到的问题
  7. iOS中,系统相册的那些事
  8. VUE定时器,用于登陆获取验证码倒计时
  9. Xftp-6和Xshell-6免费版下载(Free版)
  10. linux下面C 利用openssl的AES库加密,解密