1. 程式人生 > >emoji字符不能插入MySQL數據庫,提示“'xF0x9Fx98x84' for column 'XXXX' at row 1”

emoji字符不能插入MySQL數據庫,提示“'xF0x9Fx98x84' for column 'XXXX' at row 1”

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”