[DB][mysql]下出现 java.sql.SQLException: Incorrect string value: '\xF4\x80\x8E\xAE\xE8\x83...'
现象:保存数据时出现类似以下的错误:
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
- [client]
- default-character-set=utf8mb4
- [mysqld]
- character-set-server = utf8mb4
- collation-server = utf8mb4_unicode_ci
- init_connect='SET NAMES utf8mb4'
- skip-character-set-client-handshake = true
- [mysql]
- 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...'相关推荐
- 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 ...
- 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 ...
- 【MySQL】Java.sql.SQLException Incorrect string value: \xF0\x9F\x98\x8D\xE8\xBE...
1.背景 因为用markdown写入的文件,现在要导入到mysql数据库,但是导入的时候报错如下. 原因是该种字符串为Emoj表情内容,每个字符占用4个字节,在Mysql中默认最大支持3个字节,超长了 ...
- mysql保存emoji报java.sql.SQLException: Incorrect string value: '\xF0\x9F\x98\x8B'
最近在做即时聊天功能,需要支持 emoji 表情,测试直接发送时后台 mysql 数据库会报类似 java.sql.SQLException: Incorrect string value: '\xF ...
- 终极解决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 ...
- [乐意黎原创] 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...' ...
- 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 ...
- ### Cause: java.sql.SQLException: Incorrect string value: ‘\xF0\x9F\x96\x8B \xE7...‘ for column ‘con
目录 前言: 插入数据库异常报错信息如下,xshell服务器后台抓取的异常信息 插入失败原因,原因定位说明 数据库配置操作命令,解决方案一 java层面的最简洁的解决方案二[推荐] 网上一些其他的方案 ...
- 已解决Cause: java.sql.SQLException: Incorrect string value: ‘\\xF0\\x9F\\x8C\\xB8 \\xE5...‘报错
保存订单存入数据库时,报错: "\n### Error updating database. Cause: java.sql.SQLException: Incorrect string v ...
最新文章
- linux计算机中文件意思,shell在计算机语言中一般是啥意思,比如在linux中
- sh脚本学习之: sh脚本 、sed、awk
- 后端:REST API URI 设计的七准则
- Python学习笔记——基础篇【第七周】———FTP作业(面向对象编程进阶 Socket编程基础)...
- sublime text3下BracketHighlighter的配置方法
- 没有串口,如何打印单片机调试信息?
- 伪静态php空间,Win空间上如何实现WordPress博客的完美伪静态
- 经济日报:法定数字货币的推出将会大大压缩比特币的投资空间
- docx 2003 的补丁
- IOS pushVIewController失败
- 11.3 帧中继基本配置
- Semi-prime H-numbers(POJ 3292)
- 霸气!女学霸考692分想当“程序媛”,女王式发言:也没见男生考得比我好
- SpringCloud-Alibaba之入门
- Nodejs 中的非阻塞I/O、异步和事件驱动
- 用脑子说话,用心服务
- Windows安装程序遇到错误:0x80240037
- python sum函数的用法
- 为什么不能直接通过IP访问网站
- 二.MUI框架 开始体验MUI
热门文章
- 你可以写出优质的个人简介,自媒体个人简介三要三不要,收藏学习
- 河南本科计算机科学与技术排名,河南计算机科学与技术专业大学排名
- Windows系统批量修改文件后缀名/扩展名
- React 面试题汇总(一)!!!
- centos 7安装部署 单节点 Elasticsearch 6.6.0
- java rgb十六进制数据转图片
- 《JavaScript 的诞生》
- CutPaste: Self-Supervised Learning for Anomaly Detection and Localization 全文翻译+详细解读
- 记录一次ncl从前端到后端出图过程:调用linux-shell执行ncl命令从nc文件出图
- 辽宁省朝阳市谷歌高清卫星地图下载