Mysql的utf8编码最多3个字节,Emoji表情或者某些特殊字符是4个字节,所以由于编码的原因,数据插不进去而抛出此异常。

在此篇文章中介绍两种解决方法。

一、在程序中过滤4个字节Emoji表情或者某些特殊字符

把它们替换成空串就ok了!!!

 

二、修改数据库编码为utf8mb4

1. 在配置文件中修改数据库的字符编码,设置永久的字符编码。

Windows下MySQL的配置文件是my.ini,一般会在安装目录的根目录,而Linux下MySQL的配置文件是my.cnf,一般会放在/etc/my.cnf,/etc/mysql/my.cnf。如果找不到,可以用find命令查找。Linux用rpm包安装的MySQL是不会安装/etc/my.cnf文件的。

my.ini作如下修改:

[mysqld]

character-set-server=utf8mb4

[mysql]

default-character-set=utf8mb4

修改后重启Mysql

my.cnf作如下修改:

[client] 
        default-character-set = utf8mb4 
        [mysql] 
        default-character-set = utf8mb4 
        [mysqld] 
        character-set-client-handshake = FALSE 
        character-set-server = utf8mb4 
        collation-server = utf8mb4_unicode_ci 
        init_connect='SET NAMES utf8mb4'

修改后重启Mysql

至于为什么没有这个文件而MySQL却也能正常启动和作用,有两个说法:

第一种说法,my.cnf只是MySQL启动时的一个参数文件,可以没有它,这时MySQL会用内置的默认参数启动;

第二种说法,MySQL在启动时自动使用/usr/share/mysql目录下的my-medium.cnf文件,这种说法仅限于rpm包安装的MySQL。

解决方法:只需要复制一个/usr/share/mysql目录下的.cnf文件到/etc目录,并改名为my.cnf即可。

2. 将已经创建好的表的编码修改成utf8mb4

更改数据库编码格式命令:

mysql>alter database <数据库名> character set utf8mb4 collate utf8mb4_general_ci;

更改数据表编码格式命令:

mysql>alter table <表名> convert to character set utf8mb4 collate utf8mb4_bin;(此命令可以修改表中所有字段的编码格式)

解决MySql保存数据java.sql.SQLException: Incorrect string value: ‘\xF0\x9F\x91\x87\xE5\x91...‘相关推荐

  1. 已解决Cause: java.sql.SQLException: Incorrect string value: ‘\\xF0\\x9F\\x8C\\xB8 \\xE5...‘报错

    保存订单存入数据库时,报错: "\n### Error updating database. Cause: java.sql.SQLException: Incorrect string v ...

  2. mysql保存emoji报java.sql.SQLException: Incorrect string value: '\xF0\x9F\x98\x8B'

    最近在做即时聊天功能,需要支持 emoji 表情,测试直接发送时后台 mysql 数据库会报类似 java.sql.SQLException: Incorrect string value: '\xF ...

  3. 终极解决MySql: java.sql.SQLException: Incorrect string value: ‘\xF0\x9F\x8C\x9D\xF0\x9F...‘ for column

    1.异常 java.sql.SQLException: Incorrect string value: '\xF0\x9F\x8C\x9D\xF0\x9F...' for column '' at r ...

  4. java.sql.SQLException: Incorrect string value: ‘\xF0\x9F\x90\xB1\xF0\x9F...‘解决

    mysql 字符存在表情包 java.sql.SQLException: Incorrect string value: '\xF0\x9F\x90\xB1\xF0\x9F-' for column ...

  5. 解决 java.sql.SQLException: Incorrect string value: '\xF0\x9F\x98\x82\xF0\x9F...'

    java.sql.SQLException: Incorrect string value: '\xF0\x9F\x98\x82\xF0\x9F-' 问题: 因为表情符号存入Mysql数据库字符串不兼 ...

  6. ### Cause: java.sql.SQLException: Incorrect string value: ‘\xF0\x9F\x96\x8B \xE7...‘ for column ‘con

    目录 前言: 插入数据库异常报错信息如下,xshell服务器后台抓取的异常信息 插入失败原因,原因定位说明 数据库配置操作命令,解决方案一 java层面的最简洁的解决方案二[推荐] 网上一些其他的方案 ...

  7. java.sql.SQLException: Incorrect string value: '\xF0\x9F\x98\x8E' for column 'nick' at row 1

    mysql报错:  java.sql.SQLException: Incorrect string value: '\xF0\x9F\x98\x8E' for column 'nick' at r ...

  8. 【MySQL】Java.sql.SQLException Incorrect string value: \xF0\x9F\x98\x8D\xE8\xBE...

    1.背景 因为用markdown写入的文件,现在要导入到mysql数据库,但是导入的时候报错如下. 原因是该种字符串为Emoj表情内容,每个字符占用4个字节,在Mysql中默认最大支持3个字节,超长了 ...

  9. MySql中报错:java.sql.SQLException: Incorrect string value: '\xF0\x9F\x90\xBB' for column

    将表格的charset改为utf-8 alter table table_name charset =utf8;

  10. java.sql.SQLException: Incorrect string value: '\xF0\x9F\x90\x9B],...' for column 'DESCR' at row 1问题

    今天在项目中碰到这样的报错,原因是特殊字符无法插入数据库,只需要将数据库字段做以下修改: 项目为微信公众号,其中微信用户的昵称,当你读取保存的时候用户的微信昵称可能包含特殊字符 所以在数据库所有有关保 ...

最新文章

  1. mqttjar包_GitHub - a-voyager/MqttLib: Mqtt 通信封装库.
  2. 脑电分析系列[MNE-Python-1]| MNE-Python详细安装与使用(更新)
  3. python对象点方法_python对象方法、类方法、静态方法
  4. OA中SSH+JBPM项目整合
  5. 请解释下Spring 框架中的IOC 容器?
  6. AM2320 温湿度计 单总线读取数据
  7. debian php mysql 安装_在 Debian 下安装 Apache,MySQL,PHP
  8. LeetCode 277. 搜寻名人(思维题)
  9. 美国最受欢迎的电商网站,竟然是一家中国公司?
  10. 【java】IDEA安装VisualVM插件-使用介绍 检测死锁 内存 cpu 慢方法
  11. 力控数据写入mysQL_绝对干货,教你4分钟插入1000万条数据到mysql数据库表,快快进来...
  12. 图解+笔记-4.2.1 字符串获取操作、字符串合并和重复操作
  13. mysql学习之路三(转)
  14. mysql 并发 加锁_MySQL的并发控制与加锁分析
  15. MySQL性能优化[实践篇]-复合索引实例
  16. YYKit-YYCache分析
  17. mongo异常无法启动-处理方法
  18. 51单片机LCD1602的使用
  19. android 跑马灯 竖线,专为电竞和内容创作者而生!体验惠普 ENVY TE01台式机
  20. Revit 2015 API 的所有变化和新功能

热门文章

  1. 反应式框架Reactor中的Mono和Flux
  2. Hdu--3966(树链剖分,线段树 or 树状数组)
  3. 关于monitor模式
  4. 鸿蒙轻量级数据存储Preferences
  5. 红帽子linux中断C程序运行,在Linux中Expect – 中断程序 – Ctrl C.
  6. 电商运营分享:关于双11的淘宝客无节操赚钱干货
  7. emulator-5554 offline问题
  8. Android系统裁剪 apk
  9. 智慧公安大数据人工智能
  10. 学生个人信息管理系统(mysql)