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字节的问题(也就是表情)的主要内容,如果未能解决你的问题,请参考以下文章
Mysql之Incorrect string value: 'xF0x9Fx98x89 xE6... 保存emoji表情