java储存数据时遇到内容中有Emoji表情,存入数据库报错!

处理方法主要有两个: 
一、修改数据库字符集: 
这种方法需要的硬性要求就是你的mysql数据库版本5.5以后的。把数据表编码方式改为utf8mb4。这种方法简单省事,但是可能需要重启数据库。不推荐这种方式不推荐。

二、将Emoji表情过滤掉:
既然数据库不能保存,那就直接把这些表情过滤掉。这种情况是损坏客户的个性而让服务更便捷方式。目前很多网站就是这么干的,毕竟效率是关键,你这表情即便保存了,也说不定哪里再次用到,展示不了。 
建议做成工具方法,方便实用。

public class EmojiUtils {private static boolean isEmojiCharacter(char codePoint) {return (codePoint == 0x0)|| (codePoint == 0x9)|| (codePoint == 0xA)|| (codePoint == 0xD)|| ((codePoint >= 0x20) && (codePoint <= 0xD7FF))|| ((codePoint >= 0xE000) && (codePoint <= 0xFFFD))|| ((codePoint >= 0x10000) && (codePoint <= 0x10FFFF));}/*** 过滤emoji 或者 其他非文字类型的字符** @param source 原字符串* @param slipStr Emoji表情替换成的字符串* @return 过滤后的字符串*/public static String filterEmoji(String source,String slipStr) {if (StringUtils.isBlank(source)) {return source;}StringBuilder buf = new StringBuilder(source.length());int len = source.length();for (int i = 0; i < len; i++) {char codePoint = source.charAt(i);if (isEmojiCharacter(codePoint)) {buf.append(codePoint);} else {buf.append(slipStr);}}return buf.toString();}
}

三、引入已经封装好的公共jar包

<dependency><groupId>com.vdurmont</groupId><artifactId>emoji-java</artifactId><version>4.0.0</version>
</dependency>

EmojiParser.parseToAliases(str):直接转换 
EmojiParser.parseToAliases(str, FitzpatrickAction):带修改器的转换,修改器可以指定不同的样式

EmojiParser. removeAllEmojis(str):过滤掉字符串内的emoji表情

java处理Emoji表情相关推荐

  1. java去除emoji表情等特殊字符。

    java去除emoji表情等特殊字符.保留html标签 package test;import java.util.regex.Matcher; import java.util.regex.Patt ...

  2. Java | MySQL Emoji表情写入数据库时报错问题解决,Incorrect string value: ‘\xF0\x9F\x98\x84\xF0\x9F...‘ for column

    现象: 将Emoji表情存入数据库时,报如下错误: Cause: java.sql.SQLException: Incorrect string value: '\xF0\x9F\x99\x83\xF ...

  3. java过滤emoji表情(成功率高)

    转载自:http://blog.csdn.net/huangchao064/article/details/53283738 基本能过滤大部分的ios,安卓,微信emoji表情 有很多别的帖子搜出来很 ...

  4. java字符串Emoji表情的处理

    在做全局搜索时,遇到内容中有手机表情,存入数据库是报错!网上找了半天,发现好多人不去实验一下就复制别人的代码网上发,然后导致我拿来用直接不行.最终找到一个可以行办法,在此总结一下: 方法主要有两个: ...

  5. java如何处理emoji表情,并存入数据库

    在之前中的实时聊天的项目中遇到了移动端向pc端发送表情的时候出现乱码情况,后来总结之后java自带的java-emoji可以解决乱码并可以存入数据库中 代码如下: private static Emo ...

  6. java mysql emoji表情读写的问题

    一.背景 环境 服务器 mysql mysql-connector-java.jar 本地 mac 5.7.32 5.1.48 线上 centos 5.7.32 5.1.48 utf8mb4支持的my ...

  7. java emoji 编码_Java对Emoji表情编码与解码

    Java对Emoji表情编码与解码,使用到Java Emoji Converter . GitHub地址:https://github.com/binarywang/java-emoji-conver ...

  8. mysql uftb8mb4 储存 emoji 表情失败

    记一次生产事故踩坑.血淋淋的惨痛教训 众所周知 mysql 存 emoji 表情要用 utf8mb4 这个字符集 OK 没问题,设置 nick_name 为 utf8mb4 varchar(50) 测 ...

  9. emoji java_java存储emoji表情解决方案

    1.问题产生情况 在开发IM时有些有用的头像用了emoji表情或者聊天的时候用了emoji表情,然而mysql数据库用的编码是utf8_general_ci,就是utf-8编码,结果也就报错误了.em ...

最新文章

  1. 颜色空间模型(HSV\LAB\RGB\CMYK)
  2. oracle数据库访问order by不起作用分析
  3. 2021-03-09 Matlab RBF神经网络及其实例
  4. wxWidgets:wxSpinCtrlDouble类用法
  5. GCD6: 在GCD上异步执行非UI相关任务
  6. 机器学习理论梳理2 : KNN K近邻分类模型
  7. 【CCF】20180902-买菜
  8. 大数据_Flink_Java版_ProcessFunction(4)_应用案例_高低温分流---Flink工作笔记0069
  9. 使用Memory Analyzer tool(MAT)分析内存泄漏(二)
  10. 论文笔记_S2D.29_2017_CVPR_多尺度连续CRFs作为序列深度网络的单目深度估计
  11. 论文投稿,遭遇身份歧视该咋办?
  12. python 过采样算法_类不平衡数据分类准确率的提升算法smote过采样方法
  13. ORA-00932: 数据类型不一致:应为-,但却获得NCLOB
  14. jira 查找issue_Python操作Jira方法
  15. 三角函数计算,Cordic 算法入门
  16. 4G LTE浪潮何时席卷全球?
  17. Keil5 MDK版本使用ST-LINK下载程序的方法及注意事项
  18. nodejs获取时间戳
  19. Mysql创建自增序列方案(模拟Oracle序列)
  20. 数据库:数据的独立性

热门文章

  1. 这些商业心理你了解吗?
  2. 微支付基础:信任的成本
  3. 列表表达式爬取红牛分公司数据
  4. 5.14.1.14 LBA Status Information
  5. Javabase入门介绍
  6. 语音识别引擎_linux 语音识别引擎_中文实时语音识别引擎 - 云+社区 - 腾讯云
  7. 自动生成企业画像(标签)
  8. 【django】用户登录模块实现步骤(二)之QQ登录工具AgentLogin和通过OAuth2.0认证获取openid【33】
  9. java html5转pdf文件_Java 将Html转为PDF
  10. Seurat | 强烈建议收藏的单细胞分析标准流程(SCTransform normalization)(四)