emoji字符不能插入MySQL數據庫,提示“'\xF0\x9F\x98\x84' 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;

至此應該可以解決問題了。。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM