emoji字符不能插入MySQL數據庫,提示“'xF0x9Fx98x84' for column 'XXXX' at row 1”
阿新 • • 發佈:2017-10-26
ava 設置 except 內容 pan rect 插入數據 pla utf
從網絡中取下的數據解析後不能插入數據庫,提示某個字段有問題,問題提示如下:
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數據庫,提示“'\xF0\x9F\x98\x84' for column 'XXXX' at row 1”