前言

做qq互联登录时发现一个问题,如果qq昵称中有表情时存入mysql数据库会报错。

java.sql.SQLException: Incorrect string value: "ð" for colum n "name" at row 1at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1073)

at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3593)

at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3525)

at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1986)

at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2140)

at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2620)

at com.mysql.jdbc.StatementImpl.executeUpdate(StatementImpl.java:1662)

at com.mysql.jdbc.StatementImpl.executeUpdate(StatementImpl.java:1581)

原因是:mysql的utf8编码的一个字符最多3个字节,但是一个emoji表情为4个字节,所以utf8不支持存储emoji表情。但是utf8的超集utf8mb4一个字符最多能有4字节,所以能支持emoji表情的存储。

解决方法

1.修改mysql 配置文件/etc/my.cnf(window为my.ini)

[client]default-character-set =utf8mb4

[mysql]default-character-set =utf8mb4

[mysqld]

character-set-client-handshake =FALSE

character-set-server =utf8mb4

collation-server =utf8mb4_unicode_ci

init_connect="SET NAMES utf8mb4"

注意:mysql支持utf8mb4的版本是5.5.3+,必须升级到较新版本

2.修改database,table,column字符集

ALTER DATABASE database_name CHARACTER SET = utf8mb4 COLLATE =utf8mb4_unicode_ci;

ALTER TABLE table_name CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

ALTER TABLE table_name CHANGE column_name VARCHAR(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

3.java语言修改db配置文件

jdbc_driverClassName =com.mysql.jdbc.Driver

jdbc_url=jdbc:mysql://localhost:3306/databaseName?useUnicode=true&autoReconnect=true&rewriteBatchedStatements=TRUE

jdbc_username=root

jdbc_password=root

其中的characterEncoding=utf8可以自动被识别为utf8mb4(兼容原来的utf8),而

autoReconnection(当数据库连接异常中断时,是否自动重新连接?默认为false)强烈建议配上,忽略这个属性,可能导致缓存缘故 ,

没有读取到DB最新的配置,导致一直无法试用utf8mb4字符集;

记得要去掉characterEncoding=UTF-8”,因为mysql.cnf中已设置了init_connect="SET NAMES utf8mb4",否则还是不能保存哦

4.重启mysql服务 检查是否配置成功

mysql> show variables like "%char%";+--------------------------+----------------------------------+

| Variable_name | Value |

+--------------------------+----------------------------------+

| character_set_client | utf8mb4 |

| character_set_connection | utf8mb4 |

| character_set_database | utf8mb4 |

| character_set_filesystem | binary |

| character_set_results | utf8mb4 |

| character_set_server | utf8mb4 |

| character_set_system | utf8 |

| character_sets_dir | /usr/local/mysql/share/charsets/ |

+--------------------------+----------------------------------+

然后就可以愉快的登录啦。

mysql取出qq表情_mysql存储emoji表情报错处理,qq互联mysql存储昵称中带表情的数据时报错。...相关推荐

  1. mysql插入表情_向MySQL数据库中插入带emoji表情符的数据时报错

    问题:向MySQL数据库中插入带emoji表情符的数据时报错 原因:utf8字符集不支持emoji表情符,需要改为utf8mb4字符集(utf8mb4是MySQL在5.5.3之后增加的,实际开发中建议 ...

  2. mysql设置主键自增长,插入数据时报错,解决

    mysql设置主键自增长,插入数据时报错,解决 创建一个可以自增长的表 create table user ( sid int not null primary key auto_inrement, ...

  3. mysql floor 不准确_MYSQL的floor出现报错如何解决

    MYSQL的floor出现报错如何解决 发布时间:2020-06-02 17:30:49 来源:51CTO 阅读:159 作者:三月 不知道大家之前对类似MYSQL的floor出现报错如何解决的文章有 ...

  4. mysql添加用户出错_mysql添加用户inset报错1346解决办法

    我的MySQL版本为5.6.14版本,是二进制包安装的(虽然是二进制包安装的,但是以下问题同样适用于源码安装包安装的MySQL) 今天在我的测试库上添加一个新用户,报错: [mailto:mysql@ ...

  5. mysql数据库链接中断_mysql 数据库链接中断报错分析

    一.背景 Mysql 的DBA给Mysql定义一套规则,mysql 服务器端的默认的超时时间wait_timeout为8小时,但DBA把wait_timeout改为600秒,我估计这规则本意是减少数据 ...

  6. mysql emoji表情_Mysql支持emoji表情

    教程所示图片使用的是 github 仓库图片,网速过慢的朋友请移步>>> (原文)Mysql 支持 emoji 表情. 更多讨论或者错误提交,也请移步. 1. 前言 最近为博客添加了 ...

  7. mysql处理emoji表情_Mysql处理emoji表情

    在实际开发过程中,涉及到向mysql数据表中insert tweet,很多情况下会报错: 1 org.hibernate.exception.GenericJDBCException: Could n ...

  8. mysql 苹果表情_mysql 插入emoji表情的时候报错问题。(苹果手机)

    一.问题现象 保存微信用户昵称到数据库,ios用户的昵称包含表情,插入数据库出错. 二.分析 使用JS过滤emoji表情的主要原因:input标签中输入emoji表情,提交表单后插入数据库报错. 原因 ...

  9. python解决微信登录昵称中带有表情emoji报错,亲测有效。

    直接上解决方法: 安装这个库 pip install emoji import emojia = "ç ç ¾SunShineð»" print(a) b = emoji.demo ...

  10. mysql单表瓶颈_mysql单表性能瓶颈_优化系列 | 实例解析MySQL性能瓶颈排查定位-云栖社区-阿里云...

    导读 从一个现场说起,全程解析如何定位性能瓶颈. 排查过程 收到线上某业务后端的MySQL实例负载比较高的告警信息,于是登入服务器检查确认. 1. 首先我们进行OS层面的检查确认 登入服务器后,我们的 ...

最新文章

  1. 蚂蚁的金融交易系统架构
  2. 奇迹暖暖登录一直显示服务器满,奇迹暖暖无法登录解决办法
  3. SOAP HTTP绑定
  4. 【Git】切换分支,以及git stash的使用
  5. C语言笔试常考知识点
  6. 2020运动相机推荐_2020年最好的全景运动相机推荐
  7. PHP判断pc和移动端跳转,JS判断是PC还是移动端浏览器,并根据不同的终端跳转到不同的网址...
  8. Html显示缩略图点击展示,JS点击缩略图整屏居中放大图片效果
  9. 数据结构 6-0 图
  10. php使用curl发送 json数据
  11. 有向图生成树个数(bzoj 4894: 天赋)
  12. matlab 模式识别(第四版),模式识别与智能计算—MATLAB技术实现(第4版)
  13. CardView完全解析和使用
  14. 以图搜图源码html,以图搜图功能实现 (源码+解析)
  15. 机器学习笔记 - Moore-Penrose 伪逆
  16. ReactNative常用插件使用
  17. linux管道的使用
  18. LVS负载均衡集群服务搭建详解
  19. Android社招最全面试题,成功拿下大厂offer
  20. 基本概念:色调、色相、饱和度、对比度、亮度

热门文章

  1. win10鼎信诺为什么安装不了_win10安装软件没反应怎么办
  2. 舒尔特方格html5源码,舒尔特方格(5×5)
  3. 如何制作学术Poster?
  4. USRP N310+OAI 5G NR分支编译运行
  5. vulkan安装流程
  6. 《数据结构题集(C语言版)》第2章(线性表)习题自解答
  7. 如何用公式编辑器打长等号
  8. 手机组态软件_安卓平板组态软件​_移动端组态软件介绍
  9. ant 卓越幕墙工具箱和 那个好用_卓越幕墙工具箱
  10. SAP MM T-Code