文档章节

java MySQL插入数据出现 Incorrect string value: '\xF0\x9F\x92\x8BTi...'错误

writeademo
 writeademo
发布于 2017/03/22 17:17
字数 326
阅读 55
收藏 0

java MySQL插入数据出现 Incorrect string value: '\xF0\x9F\x92\x8BTi...'错误

2016-10-31 15:19 1810人阅读 评论(2) 收藏 举报

版权声明:本文为博主原创文章,未经博主允许不得转载。

目录(?)[+]

Emoji表情符号录入MySQL数据库报错的解决方案

查看tomcat后台日志,核心报错信息如下

 Caused by: java.sql.SQLException: Incorrect string value: '\xF0\x9F\x98\x97\xF0\x9F...' for column 'CONTENT' at row 1
  • 1
  • 1

产生原因分析:

普通的字符串或者表情都是占位3个字节,所以utf8足够用了,但是移动端的表情符号占位是4个字节,普通的utf8就不够用了,为了应对无线互联网的机遇和挑战、避免 emoji 表情符号带来的问题、涉及无线相关的 MySQL 数据库建议都提前采用 utf8mb4 字符集,这必须要作为移动互联网行业的一个技术选型的要点。

解决方法:

1、暴力去掉特殊的表情符

    content = content.replaceAll("[\\x{10000}-\\x{10FFFF}]", "");
  • 1
  • 1

2、改变字符集

需要 >= MySQL 5.5.3版本、从库也必须是5.5的了、低版本不支持这个字符集、复制报错

修改表字段字符集为utf8mb4

本文转载自:

上一篇: HBase Compaction详解
下一篇: String去除空格
writeademo
粉丝 25
博文 642
码字总数 232766
作品 0
东城
私信 提问
再次遇到的不得不解决的问题

我在做使用java对数据库mysql插入数据的时候报出来的错误如下:java.sql.SQLException: Incorrect string value: '\xF0\x9F\x90\xB7\xE8\xBE...' for column 'commentDesc' at row 1 at com......

awang
2012/11/14
1K
3
mysql 插入数据时,出现"\xF0\x9F\x8F\x80"这种情况的处理!

问题 Incorrect string value: ‘xF0x9Fx98x82xF0x9F…’ for column ‘question’ at row 1 我们知道设置数据库编码格式,表编码格式和字段编码格式的时候,一般设置为“utf-8”,这对于汉字...

灌南高手No1
01/14
0
0
java后台怎么保存IOS表情

java在后台接受到的表情,都是各种乱码,更不要说存入数据库了,在数据库响应表字段的编码改为utfmb4的情况下,有什么好办法? 插入数据库时提示 ### Cause: java.sql.SQLException: Incorr...

大海
2016/06/23
1K
7
Mysql latin1也支持emoji字符的错觉分析

起初发现了如下的现象: mysql> show variables like 'character%';+--------------------------+---------------------------------------+| Variable_name | Value |+---------------------......

zgw06629
2015/05/13
271
0
Mysql 字符集utf8mb4设置无效

背景:由于要解决java.sql.SQLException: Incorrect string value: '\xF0\x9F\x92\x94' for column 'name' at row 1异常,所以要修改mysql字符集,改为utf8mb4。 修改字符集参考文章如下(参......

心急如焚
2018/08/13
1K
6

没有更多内容

加载失败,请刷新页面

加载更多

RxJava进行单元测试的方式

@Test public void completeTask_retrievedTaskIsComplete() { // Given a new task in the persistent repository final Task newTask = new Task(TITLE, ""); ......

SuShine
26分钟前
5
0
正则表达式大全

检验手机号码 # 要求:手机号码必须为11位数字,以1开头,第二位为1或5或8。import redef verify_mobile(): mob = input("请输入手机号码:") ret = re.match(r"1[358]\d{9}", m......

彩色泡泡糖
29分钟前
5
0
QT之border-image属性

一、border-image的兼容性 border-image可以说是CSS3中的一员大将,将来一定会大放光彩,其应用潜力真的是非常的惊人。可惜目前支持的浏览器有限,仅Firefox3.5,chrome浏览器,Safari3+支持...

shzwork
30分钟前
6
0
Kubernetes Operator简易教程

1. 安装operator-sdk //安装 operator-sdk$ apt-get install operator-sdk.....$ operator-sdk versionoperator-sdk version: v0.7.0$ go versiongo version go1.11.4 darwin/amd64 2......

Robotcl_Blog
30分钟前
5
0
再谈DAG任务分解和Shuffle RDD

1、DagScheduler分析 DagScheduler功能主要是负责RDD的各个stage的分解和任务提交。Stage分解是从触发任务调度过程的finalStage开始倒推寻找父stage,如果父stage没有提交任务则循环提交缺失...

守望者之父
36分钟前
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部