Java Blog for Alex Wan

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

          統(tǒng)計(jì)

          留言簿(10)

          BlogJava

          Blogs

          DIV+CSS

          JQuery相關(guān)

          友情鏈接

          常去的地方

          數(shù)據(jù)供應(yīng)

          閱讀排行榜

          評論排行榜

          【W(wǎng)eb Harvest】Web harvest獲取XML出現(xiàn)亂碼的解決辦法

          Web harvest獲取XML出現(xiàn)亂碼的解決辦法:

          現(xiàn)象:

          在Web harvest中使用http請求去獲取某個遠(yuǎn)程的XML,此XML的特征是無文件頭(即沒有編碼描述等關(guān)鍵信息),采用了多種辦法去獲取,出現(xiàn)亂碼,無法解析成我們需要的數(shù)據(jù)。

          辦法:

          (1)最原始辦法:使用Java中的URLConnection,InputStream等類讀取字節(jié)流,構(gòu)造字符串:

          Java代碼
          1. /**  
          2.              * 通過URL獲取XML,因?yàn)樵赪eb harvest獲取XML時(shí)無法獲取正常編碼的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.              * 輸出日志確認(rèn)其編碼  
          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,因?yàn)樵赪eb harvest獲取XML時(shí)無法獲取正常編碼的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 閱讀(2362) 評論(0)  編輯  收藏 所屬分類: J2EE小筆記

          主站蜘蛛池模板: 汝城县| 宁化县| 开封市| 华亭县| 信阳市| 黄陵县| 建湖县| 葫芦岛市| 丰台区| 连平县| 安乡县| 巧家县| 会宁县| 苏尼特右旗| 临夏县| 富民县| 什邡市| 嘉祥县| 兴和县| 娱乐| 新巴尔虎左旗| 商城县| 凤台县| 屯留县| 元谋县| 潍坊市| 阿拉尔市| 芦山县| 阿拉善右旗| 南郑县| 盘山县| 绥宁县| 永靖县| 黄山市| 双峰县| 县级市| 乌鲁木齐县| 建平县| 巴彦淖尔市| 江北区| 井研县|