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.最后说点什么
通过对一个问题不同角度的思考,原来才发现世界同而不同,不同而同......
最后来段代码:
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表情存储的解决方法相关推荐
- java 存储表情_java emoji表情存储解决方案
1.问题产生情况 我遇到这个问题是做微信开发的时候有些有用的头像用了微信的emoji表情,然而我的mysql数据库用的编码是utf8_general_ci,就是utf-8编码,结果也就报错误了. 2. ...
- java文件乱码_java文件读取出现乱码解决方法
java读取文件出现乱码解决方法:(推荐:java视频教程) 1.首先将要读取的文本文件的编码格式设置为UTF-8 2.使用InputStreamReader类取读取文件,因为它的构造方法中可以指定字 ...
- java 显示中文_java显示中文乱码的解决方法
java显示中文乱码的解决方法 发布时间:2020-06-16 11:08:43 来源:亿速云 阅读:97 作者:Leah 这篇文章运用简单易懂的例子给大家介绍java显示中文乱码的解决方法,代码非常 ...
- mysql数据库插入表情包emoji表情,出错解决方案
0.插入含有特殊符号的昵称报错 ### SQL: INSERT INTO user ( uuid_tiktok, nickname, person_img_url, ...
- 微信公众号开发--普通表情与emoji表情的处理 (实用、超赞有图片资源)
原文出处:https://blog.csdn.net/frankcheng5143/article/details/64129433 (原文图文并茂,请转读原文) 随着表情的大量使用,在微信开发中,开 ...
- 微信公众号开发--普通表情与emoji表情的处理
随着表情的大量使用,在微信开发中,开发人员不得不考虑对表情的处理. 微信上的表情大致可以分为三类. 第一类是收藏的表情,像下面这样的 这种表情从微信端发到服务器是这样的 这类表情无法处理. 另一类是微 ...
- 微信公众号最佳实践 ( 10.2)回复QQ表情和Emoji表情
回复QQ表情和Emoji表情 微信的的文字发送方有一个笑脸表情等表情符,单击该表情后,我们可以发送这些表情,这些表情包括QQ表情和Emoji表情(也叫符号表情) 如图示: 微信用户和微信公众号都能直接 ...
- 我爱Java系列---【 maven依赖版本冲突的解决方法】
我爱Java系列---[ maven依赖版本冲突的解决方法] 参考文章: (1)我爱Java系列---[ maven依赖版本冲突的解决方法] (2)https://www.cnblogs.com/hu ...
- linux下java.lang.NoClassDefFoundError: org/bouncycastle/jce/provider/BouncyCastleProvider解决方法
linux下java.lang.NoClassDefFoundError: org/bouncycastle/jce/provider/BouncyCastleProvider解决方法 参考文章: ( ...
最新文章
- Idea使用Lombok简化实体类代码
- activiti 图片
- linux ksh怎么查找僵尸进程,Unix 进程管理
- 直播预告|中台基石腾讯云TStack的正确使用姿势
- 国庆出游神器:魔幻黑科技换天造物,让vlog秒变科幻大片!
- Linux系统通过FTP进行文档基本操作【华为云分享】
- 你学会测试了吗(1):推荐工具
- Java的GUI学习三(frame)
- 机刷实名认证软件_代刷网已上架抖音代实名认证和抖音音乐人认证
- 0_freeCAD_介绍,下载,语言设置
- ps里怎么给透明背景填充颜色
- android 显示大屏幕_android android如何将优化的体验带到大屏幕
- 高等数学学习笔记——第七十六讲——直角坐标系下二重积分的计算
- 汉字 计算机 坟墓,墓的拼音_墓组词_墓意思(解释)-常用汉字大全
- 17种Vue适用于移动端的ui框架
- 多商家商城系统有哪些功能
- KubeEdge SIG AI 进展与规划
- 网络拓扑距离的高效KNN查询(结项报告)
- P2P技术基础: UDP打洞原理
- c语言 循环嵌套循环_C中的嵌套循环