Mysql插入數據報錯java.sql.SQLException: Incorrect string value: '\xF0\x9F\x93\x8D\xE6\x88...'


今天讀取solr里面的數據,往mysql插入時報錯, Incorrect string value: '\xF0\x9F\x93\x8D\xE8\x88...' for column 'title' at row 1 

 

原因是標題有Emoj表情相關字符,因為我這邊不需要保留Emoj表情,不需要復原顯示,所以我選擇了簡單的方式,過濾字符。

                           byte[] b_text=title3.getBytes();
			    for (int i = 0; i < b_text.length; i++)  
			    {  
			        if((b_text[i] & 0xF8)== 0xF0){  
			            for (int j = 0; j < 4; j++) {                          
			            b_text[i+j]=0x30;                     
			        }  
			        i+=3;  
			        }  
			    }  
			    String title=new String(b_text);
title.replace("0000","")

在網上還看到別的代碼,不過我沒有試,你們可以看看

    /** 
      * 將emoji表情替換成空串 
      *   
      * @param source 
      * @return 過濾后的字符串 
      */  
     public static String filterEmoji(String source) {  
      if (source != null && source.length() > 0) {  
       return source.replaceAll("[\ud800\udc00-\udbff\udfff\ud800-\udfff]", "");  
      } else {  
       return source;  
      }  
     }</span></span>  

  


免責聲明!

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



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