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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 使用X-Sendfile下载文件

    使用X-Sendfile下载文件X-Sendfile是一种将文件下载请求由后端应用转交给前端web服务器处理的机制,它可以消除后端程序既要读文件又要处理发送的压力,从而显著提高服务器效率,特别是处理大文件下载的情形下!X-Sendfile通过HTTPheader来实现:在X-Sendfile头中指定一个文件的地址来通告前webserver。不过,在默认情况下它是被大多数web服务器禁用的。而不同的…

    2022年6月5日
    36
  • 5G NR 逻辑信道、传输信道和物理信道

    5G NR 逻辑信道、传输信道和物理信道无线接口可分为三个协议层:物理层(L1)、数据链路层(L2)和网络层(L3)。L1:主要用于为高层业务提供传输的无线物理通道。L2:包括四个子层MAC(MediumAccessControl)媒体接入控制RLC(RadioLinkControl)无线链路控制PDCP(PacketDataConvergenceProtocol)分组数据汇聚协议SDAP(ServiceD…

    2022年5月23日
    41
  • SQL文件导入Oracle数据库

    SQL文件导入Oracle数据库直接复制SQL文件至pl/sql中执行,若sql文件过大会直接导致数据库卡死,未避免数据库卡死,可直接使用pl/sql工具提供的导入表功能将sql文件直接导入数据库表中1.如下图所示:链接数据库,选择工具–》导入表2.如下图示:选择SQL导入—使用命令窗口–》选择要导入的sql文件–》点击导入按钮3.如下图所示:若提示Done,则表示导入成功,导入成功后需要点击com…

    2022年10月2日
    3
  • 互联网架构演变

    互联网架构演变互联网架构演变

    2022年4月22日
    43
  • Visual Studio 2010 and .NET Framework 4 Release Candidate发布

    Visual Studio 2010 and .NET Framework 4 Release Candidate发布

    2021年8月5日
    65
  • Java打破双亲委派机制「建议收藏」

    1.自定义加载器沿用双亲委派机制自定义类加载器很简单,只需继承ClassLoader类并重写findClass方法即可。①先定义一个待加载的类Test,它很简单,只是在构建函数中输出由哪个类加载器加载。publicclassTest{publicTest(){System.out.println(this.getClass().getClassL…

    2022年4月8日
    56

发表回复

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

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