我正在开发一个使用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; try {reader = new BufferedReader(new InputStreamReader(url.openStream(),“UTF-8”)); } catch(IOException e1){e1.printStackTrace(); } String s = null;
String data =“”;
尝试{
while((s = reader.readLine())!= null)
} catch(IOException e){
// TODO自动生成的catch块
e.printStackTrace();
}
2 回答
我刚才有同样的问题 . 我发现返回的HTML可能会被压缩成GZIP格式 . 使用类似的东西来检查编码,并使用适当的流来解码内容:
等等 .
你有没有测试过像
BufferedReader br = new BufferedReader(new InputStreamReader(socket.getInputStream(), "UTF-8"));
这样的其他想法您可以在此网页上查看所有可用的encondings enconding.doc