近日,在调用腾讯微博的相关接口时,遇到中文乱码问题。对接收到的数据进行utf-8编码也不行,虽然得到的信息多数已经转为中文,
但是仍有个别字或者符号被转义为?等 ,这样不仅没正常转义还造成json格式错误。 今天终于解决了这个问题。现在分享给大家,共同学习。
解决方案:
就是把QHttpClient.java文件里的这一部分
/*byte[] b=new byte[2048];
GZIPInputStream gzin = new GZIPInputStream(response.getEntity().getContent());
int length=0;
while((length=gzin.read(b))!=-1){
responseData.append(new String(b,0,length));
}
gzin.close();*/
改为:
/*以下为正确的编码*/
BufferedReader br = new BufferedReader(new InputStreamReader(new GZIPInputStream(response.getEntity().getContent()),"utf-8"));
String s;
while ((s = br.readLine()) != null ) {
responseData.append(s);
}
br.close();