在處理中文字串的時候,如何處理�這個字元
阿新 • • 發佈:2018-11-07
首先需要明白�這個字元是什麼意思,是怎麼產生的
解釋:從某編碼向Unicode編碼轉化時,如果沒有對應的字元,得到的將是Unicode的程式碼“\uffffd”,也就是�這個字元。
比如:伺服器端用GB2312對響應的資料進行編碼,而接收端使用預設UTF-8編碼接收是對應不上的,就會出現這個符號。
解決方法:
跟伺服器端保持一致的接收編碼即可,如:
/** * 將響應實體拼接成字串返回 * * @param entity 響應實體 * @return 實體字串 */ private static String entity2String(HttpEntity entity) { StringBuilder content = new StringBuilder(); try (InputStream inputStream = entity.getContent(); InputStreamReader inputStreamReader = new InputStreamReader(inputStream,"gb2312"); //這裡的解析型別需要和伺服器響應內容的Content-Type: text/html; charset=gb2312 裡面的charset保持一致 BufferedReader bufferedReader = new BufferedReader(inputStreamReader)) { // 讀取資料 String line; while ((line = bufferedReader.readLine()) != null) { content.append(line); } } catch (IOException e) { e.printStackTrace(); } return content.toString(); }