HttpsURLConnection GET 请求 部分乱码问题
2020-02-28 10:44:51 作者:MangoCool 来源:MangoCool
HttpsURLConnection GET 请求 部分乱码问题,显示情况是中文字数为奇数时出现乱码
一个很奇怪的现象!
1、首先看服务器返回使用哪种编码:在Response Headers中查看Content-Type字段;大部分情况是application/json;charset=UTF-8
2、再设置你的接收字符编码:
InputStream is = conn.getInputStream();
byte[] buffer = new byte[521];
ByteArrayOutputStream baos = new ByteArrayOutputStream();
for (int len; (len = is.read(buffer)) > 0; ) {
baos.write(buffer, 0, len);
}
responseContent = new String(baos.toByteArray(), "这里设置编码,如UTF-8");
baos.flush();
baos.close();
is.close();
也可以这样,方式很多,效果都一致:
BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream(),"UTF-8"));
String line;
while ((line = in.readLine()) != null) {
responseContent += line;
}
in.close();
3、最后如果还出现乱码:我猜你应该是打印的时候出现乱码了,你可以尝试debug一下代码,如果发现显示并不是乱码,那就做以下设置:
以IDEA为例:File->Settings->Editor->File Encodings,把能设置成UTF-8的都设置成UTF8。
分享: