搜尋此網誌

2013年6月12日 星期三

【Java】中文URL和URI的轉換

最近在做Crawler,爬回來的超連結發現,有些明明就是中文的網址,在瀏覽器上也是顯示中文,去查網頁的編碼是UTF-8沒錯但是抓回來的中文網址卻變成英文、數字、和百分比符號顯示亂碼的字串。
估狗後,這些亂碼並不是真的亂馬1/2(誤),而是URI編碼。欲知詳情,請見URL編碼

URL  <-----> URI
以下只是臨時打的範例,不確定與法有無正確。參考參考。

import java.net.URLDecoder;
import java.net.URLEncoder;


String test = "URI編碼";
String demo ="";

demo = URLEncoder.decode(test , "UTF-8");
System.out.println("URI編碼:"+demo);
demo = URLEncoder.decode(test , "UTF-8");
System.out.println("URI解碼:"+demo);





URI編碼:URI%E7%B7%A8%E7%A2%BC
URI解碼:URI解碼


當然如果網頁是以Big-5編碼,上述程式碼的"UTF-8"就要改成"Big-5"。




沒有留言: