java emoji表情存储的解决方法

发布时间 - 2026-01-11 02:06:15    点击率:

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;
  }
  
  
}

使用的框架是:

<dependency>
  <groupId>com.github.binarywang</groupId>
  <artifactId>java-emoji-converter</artifactId>
  <version>0.0.1</version>
</dependency>

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


# java  # emoji  # 表情存储  # Java emoji持久化mysql过程详解  # 让Java后台MySQL数据库能够支持emoji表情的方法  # java数据库唯一id生成工具类  # sqlite数据库的介绍与java操作sqlite的实例讲解  # Java使用JDBC连接postgresql数据库示例  # java使用influxDB数据库的详细代码  # Java实现批量导入excel表格数据到数据库中的方法  # java处理数据库不支持的emoji表情符问题解决  # 解决方法  # 最多  # 来了  # 是一种  # 也就  # 可以用  # 你不  # 这也  # 用了  # 才发现  # 能有  # 问题是  # 不支持  # 一个问题  # 之二  # 句话  # 设置为  # 转换为  # 说得好  # 大家多多 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: Laravel如何优化应用性能?(缓存和优化命令)  Laravel N+1查询问题如何解决_Eloquent预加载(Eager Loading)优化数据库查询  JS经典正则表达式笔试题汇总  laravel怎么配置Redis作为缓存驱动_laravel Redis缓存配置教程  Laravel怎么实现一对多关联查询_Laravel Eloquent模型关系定义与预加载【实战】  油猴 教程,油猴搜脚本为什么会网页无法显示?  如何用IIS7快速搭建并优化网站站点?  儿童网站界面设计图片,中国少年儿童教育网站-怎么去注册?  如何快速使用云服务器搭建个人网站?  如何在建站之星绑定自定义域名?  如何用y主机助手快速搭建网站?  ,南京靠谱的征婚网站?  如何快速查询网址的建站时间与历史轨迹?  百度输入法全感官ai怎么关 百度输入法全感官皮肤关闭  bootstrap日历插件datetimepicker使用方法  英语简历制作免费网站推荐,如何将简历翻译成英文?  Laravel怎么使用Blade模板引擎_Laravel模板继承与Component组件复用【手册】  Win11怎么查看显卡温度 Win11任务管理器查看GPU温度【技巧】  PHP 实现电台节目表的智能时间匹配与今日/明日轮播逻辑  Laravel如何使用Scope本地作用域_Laravel模型常用查询逻辑封装技巧【手册】  如何快速辨别茅台真假?关键步骤解析  Laravel如何处理文件上传_Laravel Storage门面实现文件存储与管理  laravel服务容器和依赖注入怎么理解_laravel服务容器与依赖注入解析  Laravel怎么配置S3云存储驱动_Laravel集成阿里云OSS或AWS S3存储桶【教程】  浅析上传头像示例及其注意事项  简单实现jsp分页  Laravel如何清理系统缓存命令_Laravel清除路由配置及视图缓存的方法【总结】  如何用搬瓦工VPS快速搭建个人网站?  Android实现代码画虚线边框背景效果  Laravel如何使用Collections进行数据处理?(实用方法示例)  javascript事件捕获机制【深入分析IE和DOM中的事件模型】  Windows10如何更改计算机工作组_Win10系统属性修改Workgroup  Laravel如何从数据库删除数据_Laravel destroy和delete方法区别  Laravel Facade的原理是什么_深入理解Laravel门面及其工作机制  微博html5版本怎么弄发语音微博_语音录制入口及时长限制操作【教程】  Android仿QQ列表左滑删除操作  Laravel用户密码怎么加密_Laravel Hash门面使用教程  千问怎样用提示词获取健康建议_千问健康类提示词注意事项【指南】  Laravel如何发送系统通知?(Notification渠道示例)  Laravel怎么调用外部API_Laravel Http Client客户端使用  香港服务器建站指南:外贸独立站搭建与跨境电商配置流程  如何在阿里云通过域名搭建网站?  Bootstrap CSS布局之列表  深入理解Android中的xmlns:tools属性  关于BootStrap modal 在IOS9中不能弹出的解决方法(IOS 9 bootstrap modal ios 9 noticework)  html5audio标签播放结束怎么触发事件_onended回调方法【教程】  Laravel如何配置和使用缓存?(Redis代码示例)  如何在IIS中配置站点IP、端口及主机头?  Laravel怎么生成URL_Laravel路由命名与URL生成函数详解  Laravel怎么实现API接口鉴权_Laravel Sanctum令牌生成与请求验证【教程】