Java处理emoji的方式

问题由来: java后端获取微信小程序用户昵称含emoji时,显示乱码。

处理思路过滤

是当接收到客户端传过来得数据—->正则判断传过来的字符串中是否包含emoji—->如果包含emoji表情的话就通过正则把emoji表情过滤掉(或者把emoji表情替换成指定字符)—->仅保存过滤emoji表情后的字符串

使用 emoji-java. 首先导入依赖包

com.vdurmont

emoji-java

4.0.0

然后使用 EmojiParser.removeAllEmojis(text); 这个方式移除字符中所有的emoji后端编码处理

通过emoji-java这个第三方提供的库进行处理,其中里面有两个常用的方法,EmojiParser.parseToAliases() 和 EmojiParser.parseToUnicode() 把emoji表情保存进数据库前调用parseToAliases()这个方法会把emoji表情转化成“:grinning:”这样的字符串,当想要把此表情从数据库里取出返回给客户端时则调parseToUnicode()这个方法。说明:如果客户端传过来的参数是有emoji表情+字符串组成,那么parseToAliases()这个方法只会处理表情,字符串部分会原封不动的存进数据库

数据库处理

修改mysql数据库的配置,达到直接存储emoji表情的目的,程序无需再对emoji表情做额外处理(对mysql的版本有要求,5.7或以上版本)

修改database,table,column字符集:ALTER DATABASE database_name CHARACTER SET = utf8mb4 COLLATE=utf8mb4_unicode_ci;

ALTER TABLE table_name CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

ALTER TABLE table_name CHANGE column_name VARCHAR(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;编辑my.cnf文件,在对应章节添加如下内容:

[client]

default-character-set = utf8mb4

[mysql]

default-character-set = utf8mb4

[mysqld]

character-set-client-handshake = FALSE

character-set-server = utf8mb4

collation-server = utf8mb4_unicode_ci

init_connect=’SET NAMES utf8mb4’

重启mysql服务即可

java emoji显示乱码_Java处理emoji的方式相关推荐

  1. java emoji显示乱码_Java 解决Emoji表情过滤问题

    Emoji表情从三方数据中获取没有过滤,导致存入DB的时候报错. 原因: UTF-8编码有可能是两个.三个.四个字节.Emoji表情是4个字节,而Mysql的utf8编码最多3个字节,所以数据插不进去 ...

  2. html 中文破折号 乱码,java破折号显示乱码

    java破折号显示乱码 [2021-02-06 23:59:19]  简介: php去除nbsp的方法:首先创建一个PHP代码示例文件:然后通过"preg_replace("/(\ ...

  3. java mysql 中文乱码_java读取MySQL中的中文数据显示乱码

    在linux平台(Ubuntu 10.10)上安装MySQL(5.1)和JDK(1.6),然后使用PuTTY远程操作.只将PuTTY的Window -> Translation 中的" ...

  4. java 解析csv 乱码_Java采用opencsv解析csv文件以及解析中文乱码问题

    参考资料: opencsv文档 写下本文时最新版的opencsv版本为4.0, maven坐标如下: com.opencsv opencsv 4.0 测试用test.csv id,date,name ...

  5. java 注册商标符号乱码_java 注册商标符号乱码

    注册商标符号乱码: 智能仓库: 探秘阿里巴巴智能仓库,全自动化超震撼!感觉要失业,缺失:java注册商标符号乱码151228/1 以下是的一些我们精选的智能仓库: 探秘阿里巴巴智能仓库,全自动化超震撼 ...

  6. java printstream 中文乱码_JAVA的中文字符乱码问题

    JAVA的中文字符乱码问题一直很让人头疼.特别是在WEB应用中.网上的分析文章和解决方案都很多,但总是针对某些特定情况的.很多次遇到乱码问题后, 经过极为辛苦的调试和搜索资料后终于解决,满以为自己已经 ...

  7. java 只显示文本文件_Java设计并实现一个应用程序,能够读取一个文本文件中的内容并显示,同时能够计算出文本中的行数。...

    展开全部 java编写显示文本的应用程序, 需要用到图形界面GUI编程技术. 步骤一: 需要搭建一个整体的外观32313133353236313431303231363533e4b893e5b19e3 ...

  8. java mysql 插入 乱码_java插入mysql乱码

    java插入mysql乱码 java插入数据到mysql分为三层: ● 前端页面 ● 后台代码 ● 数据库 这三层任意一层乱码都不行,所以我们需要对着三层逐一设置编码格式,保存编码统一就不会乱码了. ...

  9. java emoji表情 乱码_java 微信昵称带有emoji 表情乱码

    问题描述: ipone5s中昵称输入"emoji表情",保存数据库有问题. 运行环境: Java.Tomcat.mysql.Linux(我的Linux下为乱码,这个是linux问题 ...

最新文章

  1. Java学习-jsp内置对象Session
  2. 前端利器—1—转型JS编程
  3. 【Android Binder 系统】一、Binder 系统核心 ( IPC 进程间通信 | RPC 远程调用 )
  4. IoC(Inversion of Control,控制反转)模式
  5. shell 打印追加_[转]shell 数组定义、使用和追加
  6. pixhawk篇之坐标系转化,相关转化矩阵知识,算法截取
  7. 32销售是合理的引导用户购买
  8. 响应式优化透明版表白网html单页源码
  9. php 上传excel到mysql_PHP上传Excel文件导入数据到MySQL数据库示例
  10. MySQL抛出 Lock wait timeout exceeded; try restarting transaction
  11. 为什么我偏爱用 GitHub 来写书?
  12. 一个复杂的nf_conntrack实例全景解析
  13. 值得收藏的几千T超多学习资源合集分享
  14. Thoughts On To The Moon
  15. 强化学习必知二要素:计算效率和样本效率
  16. 你关心的问题都在这!爱奇艺用户留存预测挑战赛Baseline上线
  17. 微信小程序开发的适合领域
  18. Qt 编程指南 8 显示静态小图片和动态大图片
  19. ppt怎么制作抖音快手快闪效果的倒计时动画?
  20. 面试题:Lucene、Solr、ElasticSearch

热门文章

  1. 照片创意拼贴工具:FotoFuse for Mac
  2. android百度脱壳,[原创]百度加固逆向分析
  3. Javaweb课程设计(在线商城)
  4. 【C++改装】让全线奥比相机用上Python接口
  5. Linux 开源项目
  6. decodeURIComponent()函数和encodeURIComponent() 函数用法
  7. 使用连发互联空间+SQLyog 设置我们的数据库链接
  8. linux虚机大容量硬盘格式化问题
  9. 电路中滤波电容和退耦电容_超详细图文解析,电容器在电路中的27种作用
  10. echarts 修改MarkPoint字体,气泡颜色,气泡字体