mysql保存不了4字节的问题(也就是表情)

Posted 丁一江

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql保存不了4字节的问题(也就是表情)相关的知识,希望对你有一定的参考价值。

这个问题   https://blog.csdn.net/ppwangGS/article/details/62044887 

有详细的解决办法 这里我就是记录一下我遇到的问题

 

这种问题一般是往数据库 插入通讯录的时候碰到  (起的名字什么都有)

  

第一种方法    

数据库 设计表的时候 我们一般设置varchar一般是utf8   utf8_general_ci    如果出现这种状态 那么改成 utf8mb4  utf8m64_general_ci   

当然这种方法不一定管用  我碰到过两次这个问题  第一次就这样修改的没有起作用 用的第二种方法   第二次修改完美解决  这应该和数据库的配置有关系

 

第二种方法

 

我们如果碰到这种4字节(一般是表情) 那么我们可以用java识别出来 然后替换成 ** 或者  “”      这就是复制的了  亲测可用


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

 

以上是关于mysql保存不了4字节的问题(也就是表情)的主要内容,如果未能解决你的问题,请参考以下文章

微信昵称包含emoji表情,保存异常

emoji处理方法

Mysql数据库存储emoji表情

Mysql之Incorrect string value: 'xF0x9Fx98x89 xE6... 保存emoji表情

input保存emoji发送java

表情符号未使用 mysql 和 node 保存在数据库中