Mysql插入数据报错java.sql.SQLException: Incorrect string value: ‘\xF0\x9F\x98\x8D\xE8\xBE…'[通俗易懂]

Mysql插入数据报错java.sql.SQLException: Incorrect string value: ‘\xF0\x9F\x98\x8D\xE8\xBE…'[通俗易懂]前几日在项目中遇到数据库插入数据报错java.sql.SQLException:Incorrectstringvalue:’\xF0\x9F\x98\x8D\xE8\xBE…’forcolumn’title’atrow1一直以为是中文字符编码不对,然后找了各种编码的东西。后来无意中发现了一篇文章:http://blog.csdn.net/fuxuejun/a

大家好,又见面了,我是你们的朋友全栈君。

前几日在项目中遇到数据库插入数据报错

java.sql.SQLException: Incorrect string value: ‘\xF0\x9F\x98\x8D\xE8\xBE…’ for column ‘title’ at row 1

一直以为是中文字符编码不对,然后找了各种编码的东西。后来无意中发现了一篇文章:

http://blog.csdn.net/fuxuejun/article/details/20361669


其中指出了该种字符串为Emoj表情内容,每个字符占用4个字节,在Mysql中默认最大支持3个字节,超长了,所以报错了。


解决办法:

(1)在较新版本的Mysql上可选择修改数据库类型,满足编码需求,可参考上述链接中的内容。

(2)过滤掉Emoj表情相关字符,因为我这边不需要保留Emoj表情,不需要复原显示,所以我选择了简单的方式,过滤字符。


代码如下:

/**
  * 将emoji表情替换成空串
  *  
  * @param source
  * @return 过滤后的字符串
  */
 public static String filterEmoji(String source) {
  if (source != null && source.length() > 0) {
   return source.replaceAll("[\ud800\udc00-\udbff\udfff\ud800-\udfff]", "");
  } else {
   return source;
  }
 }</span></span>


版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/143787.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • redis在linux安装_安装win7系统卡在安装程序

    redis在linux安装_安装win7系统卡在安装程序1、首先上官网下载Redis压缩包,地址:http://redis.io/download选择一个稳定版下载。使用工具上传压缩文件到linux系统2、通过远程管理工具,将压缩包拷贝到Linux服务器中,执行解压操作cdRedistar-zkvfredis.tar.gz3、执行make命令对Redis解压后文件进行编译cdredismake4、编译完成之…

    2022年10月5日
    0
  • JAVA-FileInputStream之read方法「建议收藏」

    JAVA-FileInputStream之read方法「建议收藏」关于FileInputStream    它用于读取本地文件中的字节数据,继承自InputStream类,由于所有的文件都是以字节为向导,因此它适用于操作于任何形式的文件。     关于其最重要的两个方法Read()和Read(byteb)怎么使用呢?首先我们来查看API文档:  read()API文档:publicintread()th

    2022年6月6日
    33
  • java 线程 (一) 线程的简单使用

    java 线程 (一) 线程的简单使用大家好,从今天开始,我和大家一起来探讨java中线程的使用。线程是java知识体系中非常重要的一部分,我将写一系列的文章来详细的介绍java线程中需要掌握的知识。如果你是java线程的初学者,本系列文章你一定不要错过哦。本篇文章是java线程系列文章的第一篇文章,主要介绍进程与线程的概念和java中如何使用线程。1进程与线程1.1进程的概念首先我们先来介绍一下什么是进程。进程可以理解为一个个正在执行的应用程序,比如我们使用网易云音乐软件播放音乐,同时我们在使用WP

    2022年7月7日
    23
  • 《网络安全测试实验室搭建指南》—第1章1.5节关键术语

    《网络安全测试实验室搭建指南》—第1章1.5节关键术语

    2022年3月2日
    57
  • mysql改变主键字段类型吗_mysql修改字段类型有哪些?

    mysql改变主键字段类型吗_mysql修改字段类型有哪些?mysql修改字段类型有:1、添加字段【altertabletable1(表名)addNo_id(字段名)】;2、修改字段类型【t1(表名)altercolumna(字段名)】;3、删除某表的字段【drop’cpid’】。mysql修改字段类型有:1、mysql修改字段的默认值altertabletb_mer_team_columndropconstraintDF_tb_m…

    2022年5月1日
    94
  • 浪漫公式 Love 分段函数和各种心型函数 matlab实现

    浪漫公式 Love 分段函数和各种心型函数 matlab实现浪漫公式Love分段函数和各种心型函数matlab实现

    2022年8月5日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号