注意:本文案例信息:IDE是eclipse,post请求服务器,返回JSON数据。
先上代码:
BufferedReader reader = new BufferedReader(new InputStreamReader(conn.getInputStream(), "UTF-8"));
String line;
String result = "";
while ((line = reader.readLine()) != null) {
result += line;
}
System.out.println(result);
乱码如下:
在网上查找了很久,试过了如下方法,均无效:
1.修改Windows->Preferences->Workspace->text file encoding成utf-8或GBK或GBK2312.
2.设置项目的run configurations:右键项目名->run as->run configurations->Arguments->VM arguments:-Dfile.encoding=UTF-8或GBK或GBK2312,Common里面选择Encoding也为对应的(如果下拉框没有,手动输入就行了)
最终采取的办法是参考了这个链接:JAVA抓取网页json数据时打印结果乱码求帮助
把上边附的代码替换成:
InputStreamReader is = new InputStreamReader(new GZIPInputStream(conn.getInputStream()), "UTF-8");
StringBuilder sb = new StringBuilder();
char[] cbuf = new char[1024];
int len = 0;
while ((len = is.read(cbuf)) != -1) {
sb.append(cbuf, 0, len);
}
System.out.println(sb.toString());
输出: