MySQL无法存储Emoji表情,IPhone表情问题 。

JSON 2017-02-22 14:32:32 8071

今天有用户反馈,部分用户使用本站QQ 快捷登录后仍旧显示没登录,导致https://www.sojson.com/httpRequest/  工具使用不了,开始以为是个别用户的浏览器版本问题,尝试了  Chrome  ,  Firefox  等浏览器,还是不行。

然后和发现问题的用户使用Teamview 远程操作,我看线上日志,发现问题:

[ERROR][2017-02-22 13:44:35,624][druid.sql.Statement]{conn-10013, pstmt-30392} execute error. insert into so_xxxx (id, nickname, email, 
      portrait, password, security, 
      create_time, last_login_time,link,intro,address,job,qq,level)
    values (?, ?, ?, 
      ?, ?, ?, 
      ?, ?,
      ?, ?, ?, ?,  ?,?
      )
java.sql.SQLException: Incorrect string value: '\xF0\x9F\x92\x8B\xF0\x9F...' for column 'nickname' at row 1

确定问题了,数据编码问题。进一步查证发现是  Mysql  的Utf-8 编码不支持Emoji IPhone 手机的一些表情符号。

UTF-8编码有可能是两个、三个、四个字节。Emoji表情是4个字节,而Mysql的utf8编码最多3个字节,所以数据插不进去。解决方案就是:将Mysql的编码从utf8转换成utf8mb4。(引入语句)

解决方案:

1.修改配置文件。

找到  Mysql  配置文件my.ini 或者是default.ini 配置文件。修改或者添加一下内容。

[mysql]  
default-character-set=utf8mb4  
[mysqld]  
character-set-server=utf8mb4  

或者使用工具如下图

2. 修改环境变量。

root 身份登录  Mysql  ,修改环境变量,将character_set_client, character_set_connection ,character_set_database ,character_set_results ,character_set_server  都修改成  utf8mb4  编码。

3. 将原来的表数据转换为 utf8mb4 编码。

alter table TABLE_NAME convert to character set utf8mb4 collate utf8mb4_bin; 

OK了,这是iPhone下输入的吻,拼音“wen”就会出来。

版权所属:SO JSON在线解析

原文地址:https://www.sojson.com/blog/215.html

转载时必须以链接形式注明原始出处及本声明。

本文主题:

如果本文对你有帮助,那么请你赞助我,让我更有激情的写下去,帮助更多的人。

关于作者
一个低调而闷骚的男人。
相关文章
这些表情包你有吗?一起来 Battle 啊
MySQL 分区、分
MySQL数据库存储过程字符集问题,乱码的解决办法
MySQL数据库怎么锁定
Elasticsearch Date类型,时间存储相关说明。
Java 集成阿里云消息队列,日志消息存储
SpringBoot 集成Spring-data-redis,redis对象序列化存储
使用七牛云存储实现图片API,自动删除图片方案合集
又拍云(Upyun)CDN、云存储刷新链接缓存,API实例讲解
阿里云双11活动购买详细说明,阿里云最低86元起一年服务器购买详
最新文章
PHP变量剖析 11
SQL全外连接剖析 119
SQL自然连接剖析 147
springboot启动原理 245
SQL右连接【RIGHT JOIN】详解及图解 450
SQL左链接【LEFT JOIN】详解及图解 357
SQL非等值连接剖析 262
SQL等链接剖析 291
SQL内连接详解及图解 385
python之numpy常用的100种数值相关方法及代码示例 231
最热文章
最新MyEclipse8.5注册码,有效期到2020年 (已经更新) 679241
苹果电脑Mac怎么恢复出厂系统?苹果系统怎么重装系统? 674561
免费天气API,全国天气 JSON API接口,可以获取五天的天气预报 599031
免费天气API,天气JSON API,不限次数获取十五天的天气预报 565278
Jackson 时间格式化,时间注解 @JsonFormat 用法、时差问题说明 551715
我为什么要选择RabbitMQ ,RabbitMQ简介,各种MQ选型对比 509186
Elasticsearch教程(四) elasticsearch head 插件安装和使用 479645
Jackson 美化输出JSON,优雅的输出JSON数据,格式化输出JSON数据... ... 262820
Java 信任所有SSL证书,HTTPS请求抛错,忽略证书请求完美解决 244092
Elasticsearch教程(一),全程直播(小白级别) 225127
支付扫码

所有赞助/开支都讲公开明细,用于网站维护:赞助名单查看

查看我的收藏

正在加载... ...