从网络中取下的数据解析后不能插入数据库,提示某个字段有问题,问题提示如下:
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;
至此应该可以解决问题了。。