我正在开发一个使用AsyncTasks的Android应用程序,以便从应用程序API获取JSON数据。当我启动我的应用程序时,一切顺利,应用程序从API中获取正确的信息。
我实现了ActionBar pull-to-refresh库,因此人们可以拖动我的listview来刷新他们的数据。现在我的应用程序崩溃了。
我的BufferedReader.readline不是接收任何文本,而是返回这样的字符串。
���ĥS��Zis�8�+(m��L�ޔ�i}�l�V�8��$AI0��(YN�o�lI�,9cO�V͇� $��F���f~4r֧D4>�?4b�Տ��P#��|xK#h�����`�4@H,+Q�7��L�
每当我的应用程序想要接收数据时,都会创建一个新的AsyncTask,所以我不知道为什么我的读者会返回类似的内容......
我希望你们能告诉我如何解决这个问题!
编辑:这是我获取数据的方式。
BufferedReader reader = null; 尝试{ reader = new BufferedReader(new InputStreamReader(url.openStream(),“UTF-8”)); } catch(IOException e1){ e1.printStackTrace(); }
String s = null; String data = ""; try { while ((s = reader.readLine()) != null) { data += s; } } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); }
答案 0 :(得分:1)
我遇到了同样的问题。我发现返回的HTML可能会被压缩成GZIP格式。使用类似的东西来检查编码,并使用适当的流来解码内容:
self.addConstraint(top)
等等。
答案 1 :(得分:0)
您是否测试了其他编码行BufferedReader br = new BufferedReader(new InputStreamReader(socket.getInputStream(), "UTF-8"));
您可以在此网页enconding.doc
上查看所有可用的编码