2014-05-03 109 views
0

你好我試圖獲取由我得到一個字符串我試圖那個字符串解碼,但整個字符串不解碼我怎麼可以解碼整個字符串解碼如何解碼字符串?

下面的網址是我的代碼

geturl.jsp

<% 

    URL url; 

    try { 
     // get URL content 

     String a = "http://122.160.81.37:8080/mandim/MarketWise?m=agra"; 
     url = new URL(a); 
     URLConnection conn = url.openConnection(); 
     // open the stream and put it into BufferedReader 
     BufferedReader br = new BufferedReader(
       new InputStreamReader(conn.getInputStream())); 

     StringBuffer sb = new StringBuffer(); 
     String inputLine; 
     while ((inputLine = br.readLine()) != null) { 
      String str = new String(inputLine.getBytes(), "utf-8"); 
      out.println(str); 
     } 
    } catch (MalformedURLException e) { 
     e.printStackTrace(); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 
%> 

我得到下面的輸出

धान~1325|चावल~2050|ज�?वर~920|जौ~810|मकई~1280|गेहू�?~1420|जो~1050|बेजर~-|जय~800|उड़द~3600|मूंग~4400|चाना~3400|मटर~2700|अरहर~4100|मसूर~2000|लोबिया(बीज)~-|सोयाबीन~-|ढे�?चा(बीज)~- 

我在這裏得到一些?符號

所需的輸出

धान~1325|चावल~2050|ज्वर~920|जौ~810|मकई~1280|गेहूँ~1420|जो~1050|बेजर~-|जय~800|उड़द~3600|मूंग~4400|चाना~3400|मटर~2700|अरहर~4100|मसूर~2000|लोबिया(बीज)~-|सोयाबीन~-|ढेँचा(बीज)~- 

我怎樣才能得到我想要的輸出?

new InputStreamReader(conn.getInputStream(), "UTF-8")); 

不要試圖做任何其他的轉換:

在此先感謝

回答

0

當您創建他的讀者指定的編碼。

0

您可以看到許多使用utf-8編碼的字符,但少數字符除外。因此,請確保您的系統中安裝了支持所有這些字體的正確字體。

2

如果您可以假設編碼是「UTF-8」,那麼請使用@ Joni的解決方案。

但技術上更正確的解決方案是:

  1. 使用conn.getHeaderField("content-type")以提取反應介質類型,
  2. 提取charset參數(如果有的話),和
  3. 使用,作爲字符集用於解碼響應輸入流。

同時您應該檢查mediatype是否是您期望的並檢查響應狀態代碼。

參考文獻: