问题描述
我写了个程序根据腾讯微博api获取腾讯微博数据,程序单独跑起来没问题,但放到tomcat里面跑时,程序从腾讯得到的json数据里返回的一些中文变成了乱码?不知道怎么会这样,求大神指教
解决方案
解决方案二:
问题解决了,下面给解决方案,方便后面碰到这问题的人解决方案:就是把QHttpClient.java文件里的这一部分/*byte[]b=newbyte[2048];GZIPInputStreamgzin=newGZIPInputStream(response.getEntity().getContent());intlength=0;while((length=gzin.read(b))!=-1){responseData.append(newString(b,0,length));}gzin.close();*/改为:/*以下为正确的编码*/BufferedReaderbr=newBufferedReader(newInputStreamReader(newGZIPInputStream(response.getEntity().getContent()),"utf-8"));Strings;while((s=br.readLine())!=null){responseData.append(s);}br.close();
解决方案三:
楼主这个是在读取数据的时候,就先设定编码格式的吧?引用1楼zyczy1314的回复:
问题解决了,下面给解决方案,方便后面碰到这问题的人解决方案:/*以下为正确的编码*/BufferedReaderbr=newBufferedReader(newInputStreamReader(newGZIPInputStream(response.getEntity().getContent()),"utf-8"));
解决方案四:
引用2楼magi1201的回复:
楼主这个是在读取数据的时候,就先设定编码格式的吧?Quote: 引用1楼zyczy1314的回复:
问题解决了,下面给解决方案,方便后面碰到这问题的人解决方案:/*以下为正确的编码*/BufferedReaderbr=newBufferedReader(newInputStreamReader(newGZIPInputStream(response.getEntity().getContent()),"utf-8"));
嗯,腾讯微博api接口写的时候可能没太注意,因为用腾讯的有些中文还是会返回乱码
解决方案五:
引用3楼zyczy1314的回复:
楼主这个是在读取数据的时候,就先设定编码格式的吧?嗯,腾讯微博api接口写的时候可能没太注意,因为用腾讯的有些中文还是会返回乱码
蒽,最近在想乱码的这个问题,这个问题经常遇到。乱码,一般就是两种:一种是拿来的数据是乱码的,那就从源头来解决;一种是给出去的是乱码的,那就从给出去的方式上做处理。