现象:保存数据时出现类似以下的错误:

java.sql.SQLException: Incorrect string value: '\xF4\x80\x8E\xAE\xE8\x83...' for column 'CP_PUBLISHING' at row 1

原因:保存的字符中含有4字节的字符,表情符号(emoji)和一些生僻的汉字是4字节的字符。UTF-8编码只支持1-3个字节、所以当UTF-8字段存入4字节字符时就会报错。MYSQL5.5起、开始支持4字节字符。需将字段编码设置为utf8mb4.  utf8是utf8mb4的子集,utf8mb4兼容utf8.

支持4字节字符的前提:

1)mysql升级到5.5+版本

2)将字段编码修改为utf8mb4

3)数据库连接串中增加:autoReconnect=true&characterEncoding=utf-8

如:"jdbc:mysql://172.23.1.1:3306/nrps?autoReconnect=true&characterEncoding=utf-8"

除此之外还需要做以下步骤:

方案一:修改全局变量my.cnf

  1. [client]
  2. default-character-set=utf8mb4
  3. [mysqld]
  4. character-set-server = utf8mb4
  5. collation-server = utf8mb4_unicode_ci
  6. init_connect='SET NAMES utf8mb4'
  7. skip-character-set-client-handshake = true
  8. [mysql]
  9. default-character-set = utf8mb4

方案二:在数据库连接串中增加init_connect_sql SET NAMES utf8mb4

本文以druid连接池为例说明、其他连接池init_connect_sql的配置另查。

[
  {
    "dsName": "tyyd_mysql",
    "url": "jdbc:mysql://172.23.1.1:3306/nrps?autoReconnect=true&characterEncoding=utf-8",
    "username": "nrps",
    "validationQuery":"select 1",  
    "filters": "config",
    "poolPreparedStatements":false,
    "connectionProperties": "config.decrypt=true",
    "password": "xxx",
     connectionInitSqls: ["set names utf8mb4;"],
  }
]

[DB][mysql]下出现 java.sql.SQLException: Incorrect string value: '\xF4\x80\x8E\xAE\xE8\x83...'相关推荐

  1. mysql 存储数据时,报错Cause: java.sql.SQLException: Incorrect string value: '\xF4\x80\xB3\x81\xE8\xAE...'

    问题:Cause: java.sql.SQLException: Incorrect string value: '\xF4\x80\xB3\x81\xE8\xAE...' ? 解决办法:utf-8 ...

  2. Cause: java.sql.SQLException: Incorrect string value: ‘\xF4\x80\x80\x82\xF4\x80...‘ for column ‘xxx‘

    1.报错信息: Cause: java.sql.SQLException: Incorrect string value: '\xF4\x80\x80\x82\xF4\x80...' for colu ...

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

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

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

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

  5. 终极解决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 ...

  6. [乐意黎原创] java.sql.SQLException: Incorrect string value: '\xC3\x8E\xC2\xA2\xC3\x88...'

    MYSQL插入数据的时候,出现了下面的错误: java.sql.SQLException: Incorrect string value: '\xC3\x8E\xC2\xA2\xC3\x88...' ...

  7. 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 ...

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

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

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

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

最新文章

  1. linux计算机中文件意思,shell在计算机语言中一般是啥意思,比如在linux中
  2. sh脚本学习之: sh脚本 、sed、awk
  3. 后端:REST API URI 设计的七准则
  4. Python学习笔记——基础篇【第七周】———FTP作业(面向对象编程进阶 Socket编程基础)...
  5. sublime text3下BracketHighlighter的配置方法
  6. 没有串口,如何打印单片机调试信息?
  7. 伪静态php空间,Win空间上如何实现WordPress博客的完美伪静态
  8. 经济日报:法定数字货币的推出将会大大压缩比特币的投资空间
  9. docx 2003 的补丁
  10. IOS pushVIewController失败
  11. 11.3 帧中继基本配置
  12. Semi-prime H-numbers(POJ 3292)
  13. 霸气!女学霸考692分想当“程序媛”,女王式发言:也没见男生考得比我好
  14. SpringCloud-Alibaba之入门
  15. Nodejs 中的非阻塞I/O、异步和事件驱动
  16. 用脑子说话,用心服务
  17. Windows安装程序遇到错误:0x80240037
  18. python sum函数的用法
  19. 为什么不能直接通过IP访问网站
  20. 二.MUI框架 开始体验MUI

热门文章

  1. 你可以写出优质的个人简介,自媒体个人简介三要三不要,收藏学习
  2. 河南本科计算机科学与技术排名,河南计算机科学与技术专业大学排名
  3. Windows系统批量修改文件后缀名/扩展名
  4. React 面试题汇总(一)!!!
  5. centos 7安装部署 单节点 Elasticsearch 6.6.0
  6. java rgb十六进制数据转图片
  7. 《JavaScript 的诞生》
  8. CutPaste: Self-Supervised Learning for Anomaly Detection and Localization 全文翻译+详细解读
  9. 记录一次ncl从前端到后端出图过程:调用linux-shell执行ncl命令从nc文件出图
  10. 辽宁省朝阳市谷歌高清卫星地图下载