码迷,mamicode.com
首页 > 数据库 > 详细

解决Emoji存储MySQL报错问题

时间:2018-08-10 21:24:50      阅读:178      评论:0      收藏:0      [点我收藏+]

标签:group   mysql   set   com   有一个   存储   style   nic   为什么   

在解决之前,得先说明一下为什么会出现报错,Emoji表情占用4个字节,但是MySQL数据库UTF-8编码最多只能存储3个字节,就会导致存储不进去

如何解决Emoji存储问题

mysql 的 utf8编码的一个字符最多3个字节,但是一个emoji表情为4个字节,所以utf8不支持存储emoji表情。但是utf8的超集utf8mb4一个字符最多能有4字节,所以能支持emoji表情的存储。但是修改这个配置太繁琐了,容易出错,emoji-java这个库可以在代码段解决这个问题,解决思路:

  • 页面有一个表情??,在经过处理之后可以是??,将这个字符存入数据库
  • 读取的时候可以将??这个字符转为??

例如: ?? 我可以存储为:smile:,??存储为:cry:,等等,可以这样映射起来。

1、引入依赖

1 <dependency>
2      <groupId>com.vdurmont</groupId>
3      <artifactId>emoji-java</artifactId>
4     <version>3.2.0</version>
5 </dependency>

2、用法

String nikeNameTmp = resultjson.get("nickName").toString();
String nikeName = EmojiParser.parseToAliases(nikeNameTmp); //将表情符号转为字符

使用下面的两个方法就可以互相转换了:

EmojiParser.parseToAliases(string); 将表情符号转为字符

EmojiParser.parseToUnicode(string); 将字符转为表情符号

 

解决Emoji存储MySQL报错问题

标签:group   mysql   set   com   有一个   存储   style   nic   为什么   

原文地址:https://www.cnblogs.com/walblog/p/9457015.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!