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

soゝso 2017-02-22 14:32:32 2134

今天有用户反馈,部分用户使用本站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

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

本文主题:

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

相关文章
部署 Docker 前必须问自己的四个问题
MySql数据库优化注意的四个细节(方法)
MySQL数据库存储过程字符集问题,乱码的解决办法
MySQL数据库为用户设置密码,Mysql修改密码。Mysql忘记密码解决方法
MySQL数据库表怎么锁定
MySQL 分区、分表
Shiro 通过配置Cookie 解决多个二级域名的单点登录问题。
Elasticsearch Date类型,时间存储相关说明。
Oracle与Mysql删除重复的数据,Oracle和Mysql数据去重复
Shiro对Session操作doReadSession、update频繁读取和更新问题说明
最新文章
Javascript 加密/压缩后运行不了,JavaScript报错排查讲解 22
JavaScript 不可逆加密问题排查之方案一(闭包优化) 22
Java爬虫,Jsoup 爬取大众点评、美团商家信息电话号码解决方案 152
分解质因数 JavaScript 计算方式,及分解质因数讲解 4
湖南腾众4s店服务怎么样?进来看看你就知道了 27
SEO 之 SpringMVC redirect 301,301和302区别详细讲解 69
网站如何设置404页面、500等错误页面,有什么漏洞?怎么预防? 87
Java 文字转图片输出,Java 输出透明背景图片,Java文字转图片防爬虫 143
HttpClient获取访问域名的真实ip,HttpClient请求获取目标IP地址 258
又拍云24小时日志下载方法,日志合并,.gz 压缩包多个合并方法 42
最热文章
免费天气API,全国天气 JSON API接口,可以获取五天的天气预报 174625
Elasticsearch教程(四) elasticsearch head 插件安装和使用 137987
我为什么要选择RabbitMQ ,RabbitMQ简介,各种MQ选型对比 116249
Elasticsearch教程(六) elasticsearch Client创建 81935
Elasticsearch教程(二),IK分词器安装 76990
Elasticsearch教程(一),全程直播(小白级别) 76877
Elasticsearch教程(八) elasticsearch delete 删除数据(Java) 76667
苹果电脑Mac怎么恢复出厂系统?苹果系统怎么重装系统? 74060
Elasticsearch教程(五) elasticsearch Mapping的创建 69248
Elasticsearch教程(三),IK分词器安装 (极速版) 58117

骚码加入我们 / 千人QQ群:259217951

入群需要5元,如果没有QQ钱包,可以先Alipay、微信,赞助然后加群主拉进。

二维码生成 来自 >> 二维码生成器

支付扫码

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

正在加载... ...