已解决Cause: java.sql.SQLException: Incorrect string value: ‘\\xF0\\x9F\\x8C\\xB8 \\xE5...‘报错
保存订单存入数据库时,报错:
"\n### Error updating database. Cause: java.sql.SQLException: Incorrect string value: '\\xF0\\x9F\\x8C\\xB8 \\xE5...' for column 'receiver_name' at row 1\n### The error may exist in class path resource [ibatis/xxx/t_xxx_mapper.xml]\n### The error may involve insert-Inline\n### The error occurred while setting parameters\n### SQL: INSERT INTO......\n### Cause: java.sql.SQLException: Incorrect string value: '\\xF0\\x9F\\x8C\\xB8 \\xE5...' for column 'receiver_name' at row 1\n; uncategorized SQLException; SQL state [HY000]; error code [1366]; Incorrect string value: '\\xF0\\x9F\\x8C\\xB8 \\xE5...' for column 'receiver_name' at row 1; nested exception is java.sql.SQLException: Incorrect string value: '\\xF0\\x9F\\x8C\\xB8 \\xE5...' for column 'receiver_name' at row 1"
原因:
这个错误是因为数据库字段的charset是utf8,但却插入了含有四个字节单位的字符引起的,通常是emoji表情。
如图:
设置数据库编码格式,表编码格式和字段编码格式的时候,一般设置为“utf-8”,这对于汉字来说足够了,在mysql中utf8占3个字节,但是对于移动端的特殊表情符号来说,三个字节是不够的,他需要四个字节。这个时候我们使用utf8就会出现‘\xF0\x9F\x8F\x80’的问题
解决:
将包含表情的字符先进行转码(表情转字符),转成普通字符存入数据库中,在显示到页面的时候再进行一次转码(字符转表情)
步骤:
step 1: maven项目导入依赖
<dependency><groupId>com.vdurmont</groupId><artifactId>emoji-java</artifactId><version>3.2.0</version>
</dependency>
step 2: 调用方式:
EmojiParser.parseToAliases(“receiverName”); 将表情符号转为字符
EmojiParser.parseToUnicode(“receiverName”); 将字符转为表情符号
已解决Cause: java.sql.SQLException: Incorrect string value: ‘\\xF0\\x9F\\x8C\\xB8 \\xE5...‘报错相关推荐
- 终极解决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: ‘\xF0\x9F\x90\xB1\xF0\x9F...‘解决
mysql 字符存在表情包 java.sql.SQLException: Incorrect string value: '\xF0\x9F\x90\xB1\xF0\x9F-' for column ...
- 解决 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数据库字符串不兼 ...
- mysql保存emoji报java.sql.SQLException: Incorrect string value: '\xF0\x9F\x98\x8B'
最近在做即时聊天功能,需要支持 emoji 表情,测试直接发送时后台 mysql 数据库会报类似 java.sql.SQLException: Incorrect string value: '\xF ...
- 【日常Exception】第二十七回:Caused by: java.sql.SQLException: Incorrect string value: ‘\xF0\xAC\x8C\x97\xE7\x
热门系列: 程序人生,精彩抢先看 日常异常,是否也有你似曾相识的那一个 1.异常信息 Caused by: java.sql.SQLException: Incorrect string value: ...
- ### Cause: java.sql.SQLException: Incorrect string value: ‘\xF0\x9F\x96\x8B \xE7...‘ for column ‘con
目录 前言: 插入数据库异常报错信息如下,xshell服务器后台抓取的异常信息 插入失败原因,原因定位说明 数据库配置操作命令,解决方案一 java层面的最简洁的解决方案二[推荐] 网上一些其他的方案 ...
- 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 ...
- 【MySQL】Java.sql.SQLException Incorrect string value: \xF0\x9F\x98\x8D\xE8\xBE...
1.背景 因为用markdown写入的文件,现在要导入到mysql数据库,但是导入的时候报错如下. 原因是该种字符串为Emoj表情内容,每个字符占用4个字节,在Mysql中默认最大支持3个字节,超长了 ...
- springboot结合Hikari连接池出现java.sql.SQLException: Incorrect string value: ‘\xF0\x9F\x8F\x98\xEF\xB8...‘
原因 数据库存入表情一个字符为四个字节,前提数据库设置成utf8mb4,这里不做介绍. 查看语句: SHOW VARIABLES WHERE Variable_name LIKE 'character ...
最新文章
- “极致”神话和产品观念_转自“蜗窝科技”
- .NET智能客户端(SmartClient)
- tomcat源码分析(一)初始化---Debug方式
- numpy常用函数(power、sum、tile、transpose等)
- CentOS7部署Flask+Gunicorn+Nginx+Supervisor
- HTML 4.01 规定了三种文档类型
- GDOI2015 解题报告
- [Ubuntu] ubuntu20.04 安装 Mendeley
- python 函数图解_Python函数说明(一)
- 英文书: Python 网络编程基础手册
- MySQL5.6安装流程(MySQL入门)
- 体验谷歌菜市场镜像版
- 兵以诈立 —— 三国的谋略
- 【自用】图像算法、计算机视觉面试问题及答案1.0
- Java 逐行读写 TXT 文件
- 《辛雷学习方法》读书笔记——第三章 身体
- VisionPro初始化 - C#
- BeanCurrentlyInCreationException异常分析及解决
- 027-Mac触摸板实现窗口移动
- 网格平滑基础算法总结