mysql取出qq表情_mysql存储emoji表情报错处理,qq互联mysql存储昵称中带表情的数据时报错。...
前言
做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存储昵称中带表情的数据时报错。...相关推荐
- mysql插入表情_向MySQL数据库中插入带emoji表情符的数据时报错
问题:向MySQL数据库中插入带emoji表情符的数据时报错 原因:utf8字符集不支持emoji表情符,需要改为utf8mb4字符集(utf8mb4是MySQL在5.5.3之后增加的,实际开发中建议 ...
- mysql设置主键自增长,插入数据时报错,解决
mysql设置主键自增长,插入数据时报错,解决 创建一个可以自增长的表 create table user ( sid int not null primary key auto_inrement, ...
- mysql floor 不准确_MYSQL的floor出现报错如何解决
MYSQL的floor出现报错如何解决 发布时间:2020-06-02 17:30:49 来源:51CTO 阅读:159 作者:三月 不知道大家之前对类似MYSQL的floor出现报错如何解决的文章有 ...
- mysql添加用户出错_mysql添加用户inset报错1346解决办法
我的MySQL版本为5.6.14版本,是二进制包安装的(虽然是二进制包安装的,但是以下问题同样适用于源码安装包安装的MySQL) 今天在我的测试库上添加一个新用户,报错: [mailto:mysql@ ...
- mysql数据库链接中断_mysql 数据库链接中断报错分析
一.背景 Mysql 的DBA给Mysql定义一套规则,mysql 服务器端的默认的超时时间wait_timeout为8小时,但DBA把wait_timeout改为600秒,我估计这规则本意是减少数据 ...
- mysql emoji表情_Mysql支持emoji表情
教程所示图片使用的是 github 仓库图片,网速过慢的朋友请移步>>> (原文)Mysql 支持 emoji 表情. 更多讨论或者错误提交,也请移步. 1. 前言 最近为博客添加了 ...
- mysql处理emoji表情_Mysql处理emoji表情
在实际开发过程中,涉及到向mysql数据表中insert tweet,很多情况下会报错: 1 org.hibernate.exception.GenericJDBCException: Could n ...
- mysql 苹果表情_mysql 插入emoji表情的时候报错问题。(苹果手机)
一.问题现象 保存微信用户昵称到数据库,ios用户的昵称包含表情,插入数据库出错. 二.分析 使用JS过滤emoji表情的主要原因:input标签中输入emoji表情,提交表单后插入数据库报错. 原因 ...
- python解决微信登录昵称中带有表情emoji报错,亲测有效。
直接上解决方法: 安装这个库 pip install emoji import emojia = "ç ç ¾SunShineð»" print(a) b = emoji.demo ...
- mysql单表瓶颈_mysql单表性能瓶颈_优化系列 | 实例解析MySQL性能瓶颈排查定位-云栖社区-阿里云...
导读 从一个现场说起,全程解析如何定位性能瓶颈. 排查过程 收到线上某业务后端的MySQL实例负载比较高的告警信息,于是登入服务器检查确认. 1. 首先我们进行OS层面的检查确认 登入服务器后,我们的 ...
最新文章
- 蚂蚁的金融交易系统架构
- 奇迹暖暖登录一直显示服务器满,奇迹暖暖无法登录解决办法
- SOAP HTTP绑定
- 【Git】切换分支,以及git stash的使用
- C语言笔试常考知识点
- 2020运动相机推荐_2020年最好的全景运动相机推荐
- PHP判断pc和移动端跳转,JS判断是PC还是移动端浏览器,并根据不同的终端跳转到不同的网址...
- Html显示缩略图点击展示,JS点击缩略图整屏居中放大图片效果
- 数据结构 6-0 图
- php使用curl发送 json数据
- 有向图生成树个数(bzoj 4894: 天赋)
- matlab 模式识别(第四版),模式识别与智能计算—MATLAB技术实现(第4版)
- CardView完全解析和使用
- 以图搜图源码html,以图搜图功能实现 (源码+解析)
- 机器学习笔记 - Moore-Penrose 伪逆
- ReactNative常用插件使用
- linux管道的使用
- LVS负载均衡集群服务搭建详解
- Android社招最全面试题,成功拿下大厂offer
- 基本概念:色调、色相、饱和度、对比度、亮度