1. 程式人生 > >在處理中文字串的時候,如何處理�這個字元

在處理中文字串的時候,如何處理�這個字元

首先需要明白�這個字元是什麼意思,是怎麼產生的
解釋:從某編碼向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();
    }

符號解釋引用處:
http://www.php.cn/php-weizijiaocheng-104615.html