吃了经验的亏,因为Emoji表情引起的项目bug被撸主遇到两次了,总有一些调皮的小朋友爱用表情来搞点事。第一次把当时那个表改为utf8mb4解决了,第二次说啥都不好使。网上找了半天,发现好多人不去实验一下就复制别人的代码网上发,然后导致我拿来用直接不行。最后一遍遍尝试终于解决了,防止以后再出错,总结下吧。

我们的MYSQL数据库普遍用的字符集是UTF-8,默认情况下是utf8_general_ci,这种字符集下,默认是支持1-3字节的编码,当然这对字母,汉字都是没啥问题的。但是对手机带的Emoji表情级不行了,因为它是4个字节的。

这里介绍处理的一些办法吧,主要有两个:

第一,修改数据库字符集:

这种方法需要的硬性要求就是你的mysql数据库版本5.5以后的。一般有数据库管理工具的,直接打开改了就是了,比如我用的HeidiSQL,直接把表改为utf8mb4就可以了。如图:

在默认字符集那里调整

就可以了。

这种方法简单省事,但是可能需要重启数据库。还有个问题是,有时候这方法不太灵,我第一次用这个方法,完美解决的问题,但是第二次,说啥都不好使。所以,这种方式还是不推荐了。

第二,将这些表情过滤掉

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

过滤这种事,简直太多坑,比如,我尝试了很多次的这种代码:

撸主曾经十分坚信这就是最接近答案能解决表情问题的代码,即便不能,给他稍微改改就可以了。但是经过好多次,无论怎么搞,所有的字母和汉字全部都会给过滤成表情,最终还是没解决。哎,还是太年轻。

结果没办法,再去找别的代码,于是,碰到了正确的,也是目前最推荐的答案:

/*** emoji表情替换

*

*@paramsource 原字符串

*@paramslipStr emoji表情替换成的字符串

*@return过滤后的字符串*/

public staticString filterEmoji(String source,String slipStr) {if(StringUtils.isNotBlank(source)){return source.replaceAll("[\\ud800\\udc00-\\udbff\\udfff\\ud800-\\udfff]", slipStr);

}else{returnsource;

}

}

建议做成工具方法,方便实用,亲测可行。

MySQL 字符串删除表情符_字符串中Emoji表情处理相关推荐

  1. mysql 表情符串_mysql支持emoji表情符存储

    一.教你如何让数据库支持emoji表情符存储 解决方式: 更换字符集utf8-->utf8mb4 问题描述: 前台应用抓取微博信息,每天总有几条数据插入不成功.应用日志显示: java.sql. ...

  2. mysql 表情 转义_如何转义emoji表情,让它可以存入utf8的数据库?

    unicode emoji是4个字节的,存不进MySQL里,找到一个转义的库http://code.iamcal.com/php/emoji/,但是转为Unicode之后,还是4个字节,一样存不进,应 ...

  3. php处理emoji表情方法,PHP实战:3种方法轻松处理php开发中emoji表情的问题

    <PHP实战:3种方法轻松处理php开发中emoji表情的问题>要点: 本文介绍了PHP实战:3种方法轻松处理php开发中emoji表情的问题,希望对您有用.如果有疑问,可以联系我们. 背 ...

  4. java 删除指定字符_字符串删除指定位置字符 JAVA 删除字符串中指定的字符

    <死侍2>有多不按套路出牌? 要CSS布局HTML小编今天和大家分享用到函数的调用. 编制函数fun,其功能是:删除一个字符串中指定的一.问题描述:从键盘输入一个字符串给str和一个字符给 ...

  5. 字符串删除重复字符_高效的字符串清理-删除内部重复空间

    字符串删除重复字符 介绍 (Introduction) 我经常回答一些问题,其中的字符串需要"清除"多个空格字符. 最常见的解决方法是删除前导或尾随空格. 对于这个问题,有非常方便 ...

  6. 字符串中Emoji表情处理

    吃了经验的亏,因为Emoji表情引起的项目bug被撸主遇到两次了,总有一些调皮的小朋友爱用表情来搞点事.第一次把当时那个表改为utf8mb4解决了,第二次说啥都不好使.网上找了半天,发现好多人不去实验 ...

  7. java字符串中Emoji表情处理

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

  8. python字符串拼接换行符_【编测编学】零基础学python_03_字符串(拼接+换行+制表符)...

    字符串拼接 在编码的过程很多时候都会用到字符串的拼接,例如,你可能想将姓和名存储在不同的变量中,等要显示姓名时再将它们合而为一: first_name = "li" last_na ...

  9. java字符串反转及替换_字符串的替换(str_replace)

    php字符串与字符替换函数 在php教程替换字符效率最高也是最简单字符替换函数str_replace($arr1,$arr2,$str) 实例一 str_replace("iwind&quo ...

最新文章

  1. 【Memcache】下载与安装
  2. 前端跨域问题的解决方案
  3. Nginx research, nginx module development
  4. Fuel 30 分钟快速安装OpenStack
  5. [archlinux][hardware] 查看SSD的使用寿命
  6. 为什么要自学python_为什么那么多自学Python的后来都放弃了,总结起来就这些原因...
  7. VUE-PDF VUE的PDF预览组件
  8. 【bzoj1047】[HAOI2007]理想的正方形 二维RMQ
  9. c++ ANSI、UNICODE、UTF8互转
  10. 浅谈软件性能测试中关键指标的监控与分析
  11. P问题、NP问题、NPC问题
  12. chrome浏览器插件安装步骤
  13. log4j日志配置(超详细)
  14. 130242014013+杨俊杰+第3次实验
  15. PreScan快速入门到精通第三十四讲基于PreScan进行超声波雷达传感器仿真
  16. 商业智能BI:打破数据孤岛,打造企业数字化转型新引擎
  17. Python 解释器
  18. CSRF跨站请求伪造 | 总结记录
  19. MAC使用GTK创建界面
  20. Java Date转long 秒单位 返回给前台

热门文章

  1. 技术美术自学——PBR材质通道基础 常见贴图种类列举(求dalao轻喷)
  2. 性能监控 TP 指标
  3. 密码编码学与网络安全———原理与实践(第八版)第三章笔记
  4. AutoCAD Civil 3D贴图
  5. 效果 - 收藏集 - 掘金
  6. 2022年BAT,京东,美团,滴滴等公司面试经验总结
  7. Mounty 1.11 Mac免费版 (NTFS硬盘工具)支持big sur
  8. 中超联赛首轮 山东鲁能一球小胜
  9. 在Python中操作谷歌浏览器
  10. Vue获取当前的位置信息、经纬度