InputStream读JSON数据时乱码

注意:本文案例信息: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());
		

输出:

猜你喜欢

转载自blog.csdn.net/qq_31293215/article/details/82997556