前幾天看到有網友在問URLDecoder和URLEncoder方面的使用問題,突然想起,原來我剛遇到這兩個類時,也覺得很神密,由此可以想想初學者的心情,於是便有了今天的這篇文章.
其實,這兩個類的使用並不復雜,URLDecoder和URLEncoder它的作用主要是用於普通字符串和application/x-www-form-rulencodedMIME字符串之間的轉換,一般的人會以為后一個字符串比較專業,以為有什么高深的知識,其實不然.
下面,我們在在"百度"中搜索"網絡時空",會看到如下所示的圖示
從上圖中可以看出:當我們搜索的關健字包含中文時,這些關健字就會變成如圖所示的"亂碼",實際上這不是亂碼,這就是所謂的applicaion/x-www-form-urlencodedMIME字符串.
當URL地址里包含非西歐字符的字符串時,系統會將這些非西歐轉換成如圖所示的特殊字符串,那么編碼過程中可能涉及將普通字符串和這種特殊字符串的相關轉換,這就是需要使用URLDecoder和URLEncoder類
URLDecoder類包含一個decode(String s,Stringcharcter)靜態方法,它可以將看上去亂碼的特殊字符串轉換成普通字符串
URLEncoder類包含一個encode(String s,Stringcharcter)靜態方法,它可以將普通字符串轉換成application/x-www-form-urlencodedMIME字符串
如下程序代碼
importjava.net.*;
public class URLDecoderTest
{
public static void main(String[] args)
throws Exception
{
//將application/x-www-form-urlencoded字符串
//轉換成普通字符串
//其中的字符串直接從上圖所示窗口復制過來
String keyWord =URLDecoder.decode(
"%CD%F8%C2%E7%CA%B1%BF%D5","UTF-8");
System.out.println(keyWord);
//將普通字符串轉換成
//application/x-www-form-urlencoded字符串
String urlStr =URLEncoder.encode(
"網絡時空" ,"UTF-8");
System.out.println(urlStr);
}
}
上面程序中就是普通中文字符串和application/x-www-form-urlencoded MIME字符串之間的轉換.
運行上面程序結果圖示如下