在Android手机或者iPhone的各种输入法键盘中,会自带一些Emoji表情符号,如IPhone手机系统键盘包含的表情符号有:

IPhone Emoji.png

如果在移动端发布文本内容时包含了这种Emoji表情符号,通过接口传递到服务器端,服务器端再存入MySQL数据库:

对gbk 字符集的数据库,写入数据库的数据,在回显时,变成 ‘口口’ 无法回显;

对utf8 字符集的数据库,则根本无法写入数据库,程序直接报出异常信息

java.io.exception xxxxxxxx.

原因分析:

Emoji表情符号为4个字节的字符,而 utf8 字符集只支持1-3个字节的字符,导致无法写入数据库。

解决方案:

遍历输入的文本,把四字节长度的字符,修正为自定义的字符替换掉。

修改MySQL数据库字符集, 把数据库字符集从utf8 修改为支持1-4 个字节字符的utf8mb4。

事实上可以看出,第一种方案的工作量较大,并不可取。推荐使用第二种方案,修改数据库字符集。从MySQL 5.5.3版本开始,数据库可支持4个字节的utf8mb4 字符集,一个字符最多可以有4个字节,所以能支持更多的字符集,故能存储Emoji表情符号。从 mysql 5.5.3 之后版本基本可以无缝升级到 utf8mb4 字符集。同时,utf8mb4兼容utf8字符集,utf8 字符的编码、位置、存储在utf8mb4与utf8字符集里一样的,不会对有现有数据带来损坏。

升级方案:

修改数据库字符集character-set-server=utf8mb4 重启数据库生效。

修改database 的字符集为 utf8mb4 alter database dbname character set utf8mb4

修改表的字符集 为utf8mb4 , alter table character set = utf8mb4

附上:

Emoji 全编码字符集:IOS Emoji

输入法表情 mysql_Emoji表情符号在MySQL数据库中的存储相关推荐

  1. 在mysql中怎么存储表情符号_Emoji表情符号在MySQL数据库中的存储

    在Android手机或者iPhone的各种输入法键盘中,会自带一些Emoji表情符号,如IPhone手机系统键盘包含的表情符号有: IPhone Emoji.png 如果在移动端发布文本内容时包含了这 ...

  2. mysql 手机表情符号_Emoji表情符号在MySQL数据库中的存储

    在Android手机或者iPhone的各种输入法键盘中,会自带一些Emoji表情符号,如IPhone手机系统键盘包含的表情符号有: IPhone Emoji.png 如果在移动端发布文本内容时包含了这 ...

  3. mysql数据库中的存储引擎

    mysql数据库中的存储引擎 文章目录 mysql数据库中的存储引擎 mysql中包含的存储引擎 1.InnoDB存储引擎 1.1简介 1.2InnoDB体系架构 1.2.1后台线程 1.2.2内存 ...

  4. 微信表情符号 mysql_Emoji表情符号入MySQL数据库报错的解决方案

    Emoji表情符号入MySQL数据库报错的解决方案 发布时间:2020-08-15 08:21:52 来源:ITPUB博客 阅读:136 作者:bestpaydata auther:Jane.Hoo ...

  5. MySQL 数据库中如何存储经纬度

    数据库保存经纬度,需要采用什么数据类型,小数点应该精确多少位? 赤道周长(米) 度数(度) 40076000 360 111322.2222 1 11132.22222 0.1 1113.222222 ...

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

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

  7. 关于mysql数据库中插入特殊字符(emoji表情)报错1366的问题注意点

    项目场景: 提示:这里简述项目相关背景: 将Excel里面的数据保存的mysql数据库中,系统报错如下: 查询了解到,系数据库编码格式不支持保存emoji字符串格式:网上有很多教程,让我们把数据库的编 ...

  8. php 评论中添加手机表情,提示插入到数据库中出错,有解决办法

    最近在用手机上的表情对某一个文章进行评论时,发现插入到数据库的语句出错了, 就是插入表情的那一句出的错 具体的解决方法是: 文章评论表:articleComment,我需要向其中的content字段中 ...

  9. bd2和mysql语法区别,经验:在MySQL数据库中,这4种方式可以避免重复的插入数据!...

    最常见的方式就是为字段设置主键或唯一索引,当插入重复数据时,抛出错误,程序终止,但这会给后续处理带来麻烦,因此需要对插入语句做特殊处理,尽量避开或忽略异常,下面我简单介绍一下,感兴趣的朋友可以尝试一下 ...

最新文章

  1. 本科计算机专业考北大软微,2022北京大学软微学院计算机智能科技考研必看经验指导(含复试解析)...
  2. Redis学习之intset整数集合源码分析
  3. rm -fr后的恢复
  4. 【音视频安卓开发 (六)】Android GLSurfaceView播放视频
  5. 设置网页打开默认全屏_微信公众号里的视频不能进行全屏播放的解决方法
  6. CCF201912-2 回收站选址
  7. Ubuntu下TP5隐藏入口文件
  8. iis 6 7 8预加载,提升web访速
  9. Vegas渲染的时候选什么格式?
  10. youtube下载利器
  11. 计算机课件制作总结,课件制作比赛活动总结范文
  12. 复制网页上不能复制的文字
  13. 差之毫厘.失之千里 英语学习新需求之.支持通配符的电子字典
  14. 小米手机mix2手机刷入root工具、面具root管理工具、以及xp框架安装
  15. Jetpack Compose--声明式UI替代传统命令式UI的新产品
  16. FoxyProxy插件在浏览器的配置
  17. “应用程序配置不正确,应用程序未能启动” 错误的解决
  18. Spring Cloud GateWay系列(三):路由规则动态刷新
  19. 依赖:类之间的依赖关系【python】
  20. 法兰克机械手手动操作_法兰克机械手操作说明

热门文章

  1. 2022年深圳市科技型中小微企业贷款贴息资助标准及申报条件,补贴100万
  2. HTML基础---01
  3. FTP上传成功之后却查找不到文件
  4. Unity3D-设置天空盒
  5. 再见2019,你好2020,属(鼠)于我的年华
  6. 一款基于企业微信的固定资产管理软件
  7. 关于sqlserver远程连接创建后报错小结
  8. React Typescript项目对接微信jssdk
  9. 腾讯云学生服务器购买指南
  10. 论职务犯罪案件侦查 z