InputStream读JSON数据时乱码

在使用Eclipse进行POST请求并接收JSON数据时遇到乱码问题。尝试过修改 Workspace 文本文件编码、运行配置中的 VM arguments 及编码设置,但未成功。最终通过参考特定链接提供的解决方案解决了乱码问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

输出:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值