服务器之家:专注于服务器技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|编程技术|正则表达式|C/C++|

服务器之家 - 编程语言 - JAVA教程 - java emoji表情存储的解决方法

java emoji表情存储的解决方法

2020-11-25 10:54全力以赴001 JAVA教程

这篇文章主要为大家详细介绍了java emoji表情存储的解决方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

1.问题产生情况

我遇到这个问题是做微信开发的时候有些有用的头像用了微信的emoji表情,然而我的mysql数据库用的编码是utf8_general_ci,就是utf-8编码,结果也就报错误了。

2.为什么会出现这种原因

因为mysql的utf8编码的一个字符最多3个字节,但是一个emoji表情为4个字节,所以utf8不支持存储emoji表情。但是utf8的超集utf8mb4一个字符最多能有4字节,所以能支持emoji表情的存储。

3.解决方法之一

把你的数据库编码集设置为utf8mb4,无论是数据库还是表,还是字段。虽然会增加存储,但是这个可以忽略不计。 

4.解决方法之二

有句话说得好,问题来了要么解决要么折中解决。如果有些原因你不能修改数据库编码之类的,你可以用java的一些插件,如emoji-java这种emoji表情插件对表情进行特殊处理,然后保存或者去掉表情,这也是一种解决方法哦。

5.最后说点什么

通过对一个问题不同角度的思考,原来才发现世界同而不同,不同而同......

最后来段代码:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
import com.github.binarywang.java.emoji.EmojiConverter;
 
 
/**
 * 表情处理类
 * @author Administrator
 *
 */
public final class EmojiUtil {
 
  private static EmojiConverter emojiConverter = EmojiConverter.getInstance();
  
  /**
   * 将emojiStr转为 带有表情的字符
   * @param emojiStr
   * @return
   */
  public static String emojiConverterUnicodeStr(String emojiStr){
     String result = emojiConverter.toUnicode(emojiStr);
     return result;
  }
  
  /**
   * 带有表情的字符串转换为编码
   * @param str
   * @return
   */
  public static String emojiConverterToAlias(String str){
    String result=emojiConverter.toAlias(str);
    return result;
  }
  
  
}

使用的框架是:

?
1
2
3
4
5
<dependency>
  <groupId>com.github.binarywang</groupId>
  <artifactId>java-emoji-converter</artifactId>
  <version>0.0.1</version>
</dependency>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。

延伸 · 阅读

精彩推荐
  • JAVA教程解决Tomcat修改get提交请求乱码问题

    解决Tomcat修改get提交请求乱码问题

    这篇文章主要介绍了Tomcat修改get提交请求乱码问题的解决方案,需要的朋友参考下...

    m0_376344721622020-09-12
  • JAVA教程轻松掌握java装饰者模式

    轻松掌握java装饰者模式

    这篇文章主要帮助大家轻松掌握java装饰者模式,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    断了联系3632020-06-19
  • JAVA教程JAVA项目字典与缓存搭配使用方法解析

    JAVA项目字典与缓存搭配使用方法解析

    这篇文章主要介绍了JAVA项目字典与缓存搭配使用方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友...

    海绵般汲取2812020-09-27
  • JAVA教程JDBC SQL语法

    JDBC SQL语法

    结构化查询语言(SQL)是一种标准化的语言,它允许你在数据库上执行操作,如创建项目,读取内容,内容更新和删除条目 ...

    java教程网2432019-11-14
  • JAVA教程关于struts2中Action名字的大小写问题浅谈

    关于struts2中Action名字的大小写问题浅谈

    这篇文章主要给大家介绍了关于struts2中Action名字大小写问题的相关资料,文中介绍的非常详细,对大家具有一定的参考学习价值,需要的朋友们下面跟着小...

    merrick3261192020-11-17
  • JAVA教程SpringBoot2.X Devtools热部署实现解析

    SpringBoot2.X Devtools热部署实现解析

    这篇文章主要介绍了SpringBoot2.X Devtools热部署实现解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以...

    余慕秦1602020-08-29
  • JAVA教程Java中Random简介_动力节点Java学院整理

    Java中Random简介_动力节点Java学院整理

    本文详细给大家介绍了Java中Random简介相关知识,非常不错,具有参考借鉴价值,需要的朋友参考下吧...

    动力节点4892020-11-08
  • JAVA教程深入浅析Java中的volatile

    深入浅析Java中的volatile

    volatile是Java提供的一种轻量级的同步机制,在并发编程中,它也扮演着比较重要的角色.这篇文章主要介绍了深入浅析Java中的volatile,需要的朋友可以参考下...

    dreamcatcher-cx2952020-08-30