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.最后说点什么

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

最后来段代码:

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;

}

}

使用的框架是:

com.github.binarywang

java-emoji-converter

0.0.1

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

时间: 2017-06-25

java 存储表情_java emoji表情存储的解决方法相关推荐

  1. java 存储表情_java emoji表情存储解决方案

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

  2. java文件乱码_java文件读取出现乱码解决方法

    java读取文件出现乱码解决方法:(推荐:java视频教程) 1.首先将要读取的文本文件的编码格式设置为UTF-8 2.使用InputStreamReader类取读取文件,因为它的构造方法中可以指定字 ...

  3. java 显示中文_java显示中文乱码的解决方法

    java显示中文乱码的解决方法 发布时间:2020-06-16 11:08:43 来源:亿速云 阅读:97 作者:Leah 这篇文章运用简单易懂的例子给大家介绍java显示中文乱码的解决方法,代码非常 ...

  4. mysql数据库插入表情包emoji表情,出错解决方案

    0.插入含有特殊符号的昵称报错 ### SQL: INSERT INTO user  ( uuid_tiktok, nickname,        person_img_url,           ...

  5. 微信公众号开发--普通表情与emoji表情的处理 (实用、超赞有图片资源)

    原文出处:https://blog.csdn.net/frankcheng5143/article/details/64129433 (原文图文并茂,请转读原文) 随着表情的大量使用,在微信开发中,开 ...

  6. 微信公众号开发--普通表情与emoji表情的处理

    随着表情的大量使用,在微信开发中,开发人员不得不考虑对表情的处理. 微信上的表情大致可以分为三类. 第一类是收藏的表情,像下面这样的 这种表情从微信端发到服务器是这样的 这类表情无法处理. 另一类是微 ...

  7. 微信公众号最佳实践 ( 10.2)回复QQ表情和Emoji表情

    回复QQ表情和Emoji表情 微信的的文字发送方有一个笑脸表情等表情符,单击该表情后,我们可以发送这些表情,这些表情包括QQ表情和Emoji表情(也叫符号表情) 如图示: 微信用户和微信公众号都能直接 ...

  8. 我爱Java系列---【 maven依赖版本冲突的解决方法】

    我爱Java系列---[ maven依赖版本冲突的解决方法] 参考文章: (1)我爱Java系列---[ maven依赖版本冲突的解决方法] (2)https://www.cnblogs.com/hu ...

  9. linux下java.lang.NoClassDefFoundError: org/bouncycastle/jce/provider/BouncyCastleProvider解决方法

    linux下java.lang.NoClassDefFoundError: org/bouncycastle/jce/provider/BouncyCastleProvider解决方法 参考文章: ( ...

最新文章

  1. Idea使用Lombok简化实体类代码
  2. activiti 图片
  3. linux ksh怎么查找僵尸进程,Unix 进程管理
  4. 直播预告|中台基石腾讯云TStack的正确使用姿势
  5. 国庆出游神器:魔幻黑科技换天造物,让vlog秒变科幻大片!
  6. Linux系统通过FTP进行文档基本操作【华为云分享】
  7. 你学会测试了吗(1):推荐工具
  8. Java的GUI学习三(frame)
  9. 机刷实名认证软件_代刷网已上架抖音代实名认证和抖音音乐人认证
  10. 0_freeCAD_介绍,下载,语言设置
  11. ps里怎么给透明背景填充颜色
  12. android 显示大屏幕_android android如何将优化的体验带到大屏幕
  13. 高等数学学习笔记——第七十六讲——直角坐标系下二重积分的计算
  14. 汉字 计算机 坟墓,墓的拼音_墓组词_墓意思(解释)-常用汉字大全
  15. 17种Vue适用于移动端的ui框架
  16. 多商家商城系统有哪些功能
  17. KubeEdge SIG AI 进展与规划
  18. 网络拓扑距离的高效KNN查询(结项报告)
  19. P2P技术基础: UDP打洞原理
  20. c语言 循环嵌套循环_C中的嵌套循环

热门文章

  1. HTML网页编程(2)
  2. 多渠道归因分析(Attribution):传统归因(一)
  3. android英文文献翻译,安卓 英文 外文 文献翻译 android api级别.doc
  4. linux开发板lcd按压,嵌入式Linux裸机开发(十五)——LCD
  5. 互联网是如何组建的,为什么需要IP地址和MAC地址?
  6. VC6无负担实现XP风格界面
  7. 常见的嵌入式操作系统
  8. bga焊盘怎么做_BGA焊盘设计标准及基本规则是什么
  9. 讯搜 配置mysql_迅搜使用指南
  10. 解决for循环有时只输出最后一个结果