emoji字符不能插入MySQL数据库,提示“'xF0x9Fx98x84' for column 'XXXX' at row 1”
Posted 巫师的蜕变
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了emoji字符不能插入MySQL数据库,提示“'xF0x9Fx98x84' for column 'XXXX' at row 1”相关的知识,希望对你有一定的参考价值。
从网络中取下的数据解析后不能插入数据库,提示某个字段有问题,问题提示如下:
SQLException: Incorrect string value: ‘\xF0\x9F\x98\x84‘ for column ‘wei_content‘ at row 1
查阅资料后发现,是由于emoji字符和数据库有差异,不能直接存储
解决方案一:
将内容中的emoji字符去掉:
public String removeNonBmpUnicode(String str) { if (str == null) { return null; } str = str.replaceAll("[^\\u0000-\\uFFFF]", ""); return str; }
解决方案二:
设置数据库参数:
1.将mysql编码从utf8转换成utf8mb4:
修改MySQL安装目录下的my.cnf
2.修改数据表的编码为utf8mb4
执行命令:ALTER TABLE TABLE_NAME CONVERT TO CHARACTER SET utf8mb4;
至此应该可以解决问题了。。
以上是关于emoji字符不能插入MySQL数据库,提示“'xF0x9Fx98x84' for column 'XXXX' at row 1”的主要内容,如果未能解决你的问题,请参考以下文章