從網絡中取下的數據解析后不能插入數據庫,提示某個字段有問題,問題提示如下:
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;
至此應該可以解決問題了。。
