在使用 Java 進行 Http 請求時,我們通常需要處理 JSON 數據。然而,如果服務器返回的 JSON 數據出現了亂碼,就會給我們的開發工作帶來不便。這篇文章將介紹一些處理 Java Http 請求中 JSON 數據亂碼的方法。
JSON 數據的亂碼通常是由于字符集編碼不一致引起的。因此,我們需要確保請求和響應中使用的字符集編碼一致。
// 設置請求字符集編碼 conn.setRequestProperty("charset", "utf-8"); // 設置響應字符集編碼 String responseCharset = conn.getHeaderField("Content-Type"); if (responseCharset != null && responseCharset.contains("charset=")) { responseCharset = responseCharset.substring(responseCharset.indexOf("charset=") + 8); try { Charset.forName(responseCharset); } catch (UnsupportedCharsetException e) { responseCharset = "UTF-8"; } } else { responseCharset = "UTF-8"; }
如果以上方式無果,我們可以在轉化 JSON 數據時指定字符集編碼:
String jsonString = EntityUtils.toString(httpEntity, "UTF-8"); JSONObject jsonObject = new JSONObject(new String(jsonString.getBytes("UTF-8"),"UTF-8"));
最后,如果 JSON 數據中包含了 Unicode 編碼的字符,可以使用 JsonUnescape 進行轉義,以便在頁面中顯示:
String unescapeJson = StringEscapeUtils.unescapeJson(jsonString);
綜上,處理 Java Http 請求中 JSON 數據亂碼的方法包括設置請求和響應字符集編碼、在轉化 JSON 數據時指定字符集編碼以及使用 JsonUnescape 進行 Unicode 轉義。正確地處理 JSON 數據的亂碼能夠提高開發效率,使得我們的開發工作更加高效。
上一篇java 前臺和后臺