public static String unzipHTML(String s){
		int endPos = s.indexOf("\r\n\r\n");
		if(endPos<10)
			return s;
		try{
			String header = s.substring(0, endPos);
			if(header.indexOf("Content-Encoding: gzip")!=-1){
				String[] strs = s.split("\r\n\r\n", 2);
				
				Log.d("com.she.jyass.c", strs[0] + "\nstrs[1] len=" + strs[1].length());
		
				ByteArrayInputStream bis = new ByteArrayInputStream(strs[1].getBytes("Latin1"));
				GZIPInputStream g = new GZIPInputStream(bis);
		
				BufferedReader br = new BufferedReader(new InputStreamReader(g));
				StringBuffer sb = new StringBuffer();
				char[] buffer = new char[10240];
				int len;
				while ( (len=br.read(buffer)) >0) {
					sb.append(buffer, 0, len);
				}
				s = strs[0] + "\r\n\r\n" + sb.toString();			
			}
		}catch(Exception e){
			commonUtils.printError(e, "unzipHTML");
		}
		return s;
	}

 

使用方法:

String s = new String(rtn.data, "Latin1");

s = commonUtils.unzipHTML(s);


注意,即使你的网页是utf-8的,也要用Latin1,否则出来的是乱码

posted on 2015-01-29 17:17  老游条  阅读(193)  评论(0编辑  收藏  举报