当时利用谷歌提供的接口做了个从谷歌图片中的批量下载功能,用到jquery、json编码、java网络编程、IO流、多线程。
遇到了个困扰我好长时间的问题就是从URL获取流的时候,遇到中文就好再json串中形成乱码,造成json无法准确解析会报错:
org.json.JSONException: Expected a ',' or '}' at 477 [character 478 line 1]
查了很多资料:
首先要改下从前端获取的值要进行一次编码:
String imageName = request.getParameter("imageName");
int imageNum = Integer.parseInt(request.getParameter("imageNum"));
String keyword = java.net.URLEncoder.encode(imageName,"UTF-8");
然后:
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(in,"UTF-8"));
我这样改下就好了。很开心!

本文介绍了一种解决从URL获取流时遇到中文字符导致JSON串出现乱码的方法。通过使用`URLEncoder.encode`对前端传来的中文参数进行编码,并指定`InputStreamReader`的字符集为`UTF-8`,成功解决了乱码问题。

1万+

被折叠的 条评论
为什么被折叠?



