Java Blog for Alex Wan

Let life be beautiful like summer flowers and death like autumn leaves.

统计

留言簿(10)

BlogJava

Blogs

DIV+CSS

JQuery相关

友情链接

常去的地方

数据供应

阅读排行榜

评论排行榜

【Web Harvest】Web harvest获取XML出现乱码的解决办法

Web harvest获取XML出现乱码的解决办法:

现象:

在Web harvest中使用http请求去获取某个远程的XML,此XML的特征是无文件头(即没有编码描述等关键信息),采用了多种办法去获取,出现乱码,无法解析成我们需要的数据。

办法:

(1)最原始办法:使用Java中的URLConnection,InputStream等类读取字节流,构造字符串:

Java代码
  1. /**  
  2.              * 通过URL获取XML,因为在Web harvest获取XML时无法获取正常编码的XML  
  3.              */  
  4.             URL url=new URL(link);   
  5.             URLConnection connection=url.openConnection();   
  6.             InputStream in=connection.getInputStream();   
  7.             ListbyteList=new ArrayList();   
  8.             byte b=-1;   
  9.             while((b=(byte)in.read())!=-1)   
  10.             {   
  11.                 byteList.add(b);   
  12.             }   
  13.             byte[]bytes=new byte[byteList.size()];   
  14.             for(int i=0;i
  15.             {   
  16.                 bytes[i]=byteList.get(i);   
  17.             }   
  18.             /**  
  19.              * 输出日志确认其编码  
  20.              */  
  21.             logger.debug(new String(bytes));   
  22.             logger.debug(new String(bytes,"utf-8"));   
  23.             logger.debug(new String(bytes,"gbk"));   
  24.             logger.debug(new String(bytes,"gb2312"));  

 

 (2)最好的办法直接使用dom4j中的SAXReader

Java代码
  1. /**  
  2.              * 通过URL获取XML,因为在Web harvest获取XML时无法获取正常编码的XML  
  3.              */  
  4.             URL url=new URL(link);   
  5.             SAXReader xmlReader = new SAXReader();   
  6.             Document doc=xmlReader.read(url);  

非常简单,连编码都不用管!

 

 其中:link为需要获取XML的地址



Let life be beautiful like summer flowers and death like autumn leaves.

posted on 2009-02-17 15:13 Alexwan 阅读(2328) 评论(0)  编辑  收藏 所属分类: J2EE小笔记


只有注册用户登录后才能发表评论。


网站导航: