关于微信一系列开发,emoji表情导致数据库报错个人解决办法
用微信公众号开发举例,我们获取用户信息并且储存进数据库的时候,微信昵称由于可以使用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表情导致数据库报错个人解决办法相关推荐
- Oracle数据库备份报错12514,Oracle 数据库报错 ORA-12514解决办法
Oracle 数据库报错 ORA-12514解决办法 绝对实用 如果orale数据库报ORA-12514 无监听程序 错误 就要listener.ora 和 tnsnames.ora 文件修改 一下如 ...
- python,使用微信远程控制电脑或使用微信定时发送消息关于QR.png报错的解决办法
修改微信包itchat中的的utils.py文件,位置在--\Python35\Lib\site-packages\itchat\下,修改如下代码 把: def print_qr(fileDir):i ...
- 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 ...
- 存储emoji表情或特殊字符报错(Incorrect string value: ‘\xF0\x9F\x98\x82\xF0\x9F...‘)
今天发生一件有趣的事情. 我的博客 我在一篇文章中使用了**emoji表情**,前面很顺利,不管是WordPress还是其他博客园啥的,都是正常发送. 但是,我在Typecho系统中发布文章时.... ...
- laravel 提交Request 请求后会莫名多出一个s参数,导致数据库报错问题的解决方法
项目场景: apache运行laravel框架开发的系统. 问题描述: 提交post或者其他请求,会在request中存在s参数,导致数据库报错. 原因分析: apache的.htaccess文件中的 ...
- fundebug php,import提升导致Fundebug报错的解决方法(详细)
本篇文章给大家带来的内容是关于import提升导致Fundebug报错的解决方法(详细),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 摘要: 解释一下"请配置apikey ...
- Xamarin开发安装Visual Studio 2015 update2报错的解决办法
Xamarin开发安装Visual Studio 2015 update2报错的解决办法 错误信息:update 2 requires a member of the visual studio 20 ...
- 微信表情符号 mysql_Emoji表情符号入MySQL数据库报错的解决方案
Emoji表情符号入MySQL数据库报错的解决方案 发布时间:2020-08-15 08:21:52 来源:ITPUB博客 阅读:136 作者:bestpaydata auther:Jane.Hoo ...
- mysql 苹果表情_mysql 插入emoji表情的时候报错问题。(苹果手机)
一.问题现象 保存微信用户昵称到数据库,ios用户的昵称包含表情,插入数据库出错. 二.分析 使用JS过滤emoji表情的主要原因:input标签中输入emoji表情,提交表单后插入数据库报错. 原因 ...
最新文章
- Moses 里的参数(未完成)
- android studio 抓log,Android studio保存logcat日志到本地的操作
- hadoop集群中客户端修改、删除文件失败
- 解决 Tomcat 添加 Cookie 域名报错问题 : CookieProcessor
- cacti无密码登录
- activeMQ入门安装
- 常用的js自定义方法 -- hasClass addClass removeClass getElementsByClass
- JavaScript学习(八十七)—流程控制语句的总结,超级详细!!!
- 2012总结--目录
- JAVA Runtime.addShutdownHook()方法{拿到线程句柄,在程序关闭之前调用释放资源}
- DirectDraw 学习:
- 想要在工作中脱颖而出?这几款优秀的PC软件能够帮你
- 【Natural Language Processing】语言模型(Language Modeling)
- 坦克大战小游戏——新手练习用的
- 聚合搜索V3.0泛解析泛目录站群源码 MIP自动推送 SEO功能SEO源码
- 【无标题】c语言指针2333
- 常见API、正则表达式、Lanbda、算法
- Atom - 介绍和使用方法(好用的文本编辑器,代码提示高亮、Markdown)
- Android面试题和答案
- mysql sys模式_mysql8 参考手册-sys模式存储过程diagnostics()过程
热门文章
- WRF系列教程3:嵌套方式总结
- Codeforces 1182E Product Oriented Recurrence 矩阵快速幂
- t20天正结构v7.0破姐 安装教程
- c语言bnd文件,Unix环境下嵌入式C程序编译
- python金融分析试题_知到《Python金融数据分析》章节答案
- Ubuntu18 安装Kinect驱动(openni、NITE、Sensor)及遇到的问题
- iOS中,系统相册的那些事
- VUE定时器,用于登陆获取验证码倒计时
- Xftp-6和Xshell-6免费版下载(Free版)
- linux下面C 利用openssl的AES库加密,解密