当前位置: 首页 > 文章教程  > 计算机与互联网 > 数据库

MySQL存储表情时报错:java.sql.SQLException: Incorrect string value:‘\xF0\x9F\x92\xA9\x0D\x0A...’的解决方法

5/9/2018 10:32:31 PM 人评论

前言本文主要介绍了关于MySQL存储表情报错:java.sql.SQLException: Incorrect string value: \xF0\x9F\x92\xA9\x0D\x0A...的相关解决方法,分享出供大家参考学习,下面话不多说了,来一起看看详细的介绍:本项目是基于Spring MVC + MySQL + Druid DataSource。在往数据…

前言

本文主要介绍了关于MySQL存储表情报错:java.sql.SQLException: Incorrect string value: '\xF0\x9F\x92\xA9\x0D\x0A...'的相关解决方法,分享出供大家参考学习,下面话不多说了,来一起看看详细的介绍:

本项目是基于Spring MVC + MySQL + Druid DataSource。在往数据库插入表情Emoji字符时报错:

java.sql.SQLException: Incorrect string value: '\xF0\x9F\x92\xA9\x0D\x0A...'

普通字符最多占用3个字节,使用utf8足够。而emoji表情字符占用4个字节,需要使用utf8mb4字符集存储。解决需要在两个地方做修改:MySQL服务器端和连接的客户端。

MySQL服务器端

之前给大家介绍过使MySQL能够存储emoji表情字符的设置教程,想进一步了解的朋友可以先看一看。

在服务器端把需要存储表情emoji字符的字段改用utf8mb4字符集:

ALTER TABLE mytable MODIFY COLUMN myfiled varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

相关教程

  • access中显示MSysObjects系统表的设置方法

    默认access的系统表MSysObjects等是不显示的,需要手动设置access显示MSysObjects等系统表。设置方法如下:1. 打开Access2. 点击“工具”菜单,选择“选项”3. 在“视图”页上,将“系统对象”勾上4. 点击“确定”按钮保存设置5. 点击“工具”菜单,选择“安全”中的“用…

    5/9/2018 10:35:47 PM
  • 浅谈redis内存数据的持久化方式

    一、概述Redis的强大性能很大程度上都是因为所有数据都是存储在内存中的,然而当Redis重启后,所有存储在内存中的数据将会丢失,在很多情况下是无法容忍这样的事情的。所以,我们需要将内存中的数据持久化!典型的需要持久化数据的场景如下:将Redis作为数据库使用;将Re…

    5/9/2018 10:35:28 PM
  • Redis中事件驱动模型示例详解

    前言Redis 是一个事件驱动的内存数据库,服务器需要处理两种类型的事件。文件事件时间事件下面就会介绍这两种事件的实现原理。文件事件Redis 服务器通过 socket 实现与客户端(或其他redis服务器)的交互,文件事件就是服务器对 socket 操作的抽象。 Redis 服务器,通过监…

    5/9/2018 10:35:26 PM
  • MongoDB开启权限认证的方法步骤详解

    前言最近在生产环境中MongoDB已经使用有一段时间了,但对于MongoDB的数据存储一直没有使用到权限访问(MongoDB默认设置为无权限访问限制),最近在酷壳网看了一篇技术文章(https://coolshell.cn/s=从+MONGODB+“赎金事件”+看安全问题&from=timeline&isappinsta…

    5/9/2018 10:34:58 PM

共有条评论 网友评论

验证码: 看不清楚?