MySQL存储表情时报java.sql.SQLException:Incorrectstringvalue:‘\xF0\x9F\x92\xA9\x0D\x0A...’错误怎么办

这篇文章将为大家详细讲解有关MySQL存储表情时报java.sql.SQLException: Incorrect string value:‘\xF0\x9F\x92\xA9\x0D\x0A...’错误怎么办,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

站在用户的角度思考问题,与客户深入沟通,找到富平网站设计与富平网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:成都网站设计、成都做网站、企业官网、英文网站、手机端网站、网站推广、域名与空间、雅安服务器托管、企业邮箱。业务覆盖富平地区。

本项目是基于Spring MVC + MySQL + Druid DataSource。在往数据库插入表情Emoji字符时报错:

java.sql.SQLException: Incorrect string value: '\xF0\x9F\x92\xA9\x0D\x0A...'

普通字符最多占用3个字节,使用utf8足够。而emoji表情字符占用4个字节,需要使用utf8mb4字符集存储。解决需要在两个地方做修改:MySQL服务器端和连接的客户端。

MySQL服务器端

之前给大家介绍过使MySQL能够存储emoji表情字符的设置教程,想进一步了解的朋友可以先看一看。

在服务器端把需要存储表情emoji字符的字段改用utf8mb4字符集:

ALTER TABLE mytable MODIFY COLUMN myfiled varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

客户端

客户端需要把连接的字符集设定为utf8mb4。

设置如下:

set names utf8mb4;

使用的是阿里开源的druid datasource,它有一个属性connectionInitSqls,它用来设置物理连接初始化的时候执行的sql。所以我们可以使用connectionInitSqls来初始化连接。

Spring配置如下:


 
 
 
 
 
 

其他的数据库连接池如dbcp2,HikariCP都有connectionInitSqls属性。

关于“MySQL存储表情时报java.sql.SQLException: Incorrect string value:‘\xF0\x9F\x92\xA9\x0D\x0A...’错误怎么办”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。


文章题目:MySQL存储表情时报java.sql.SQLException:Incorrectstringvalue:‘\xF0\x9F\x92\xA9\x0D\x0A...’错误怎么办
文章起源:http://bzwzjz.com/article/ihcsoi.html

其他资讯

Copyright © 2007-2020 广东宝晨空调科技有限公司 All Rights Reserved 粤ICP备2022107769号
友情链接: 成都企业网站建设公司 成都企业网站制作 网站建设推广 重庆电商网站建设 成都企业网站建设 定制级高端网站建设 营销网站建设 定制网站设计 移动网站建设 成都网站建设 成都营销网站制作 成都响应式网站建设公司 成都网站建设公司 企业网站设计 企业手机网站建设 成都网站设计公司 成都网站制作 企业网站建设 响应式网站建设 自适应网站设计 成都网站制作公司 app网站建设