2011-11-13 43 views
3

我對編碼的URL感到困惑。編碼的URL不起作用

例如,當我寫我的瀏覽器:

stackoverflow.com/questions 

我可以成功地查看頁面。

然而,當我寫:

stackoverflow.com%2Fquestions 

我無法查看。

由於%2F的意思是「/」,我想明白爲什麼這不起作用。

我想知道的原因是我得到一個編碼的URL,並且我不知道如何在我收到它之後立即解碼該URL,以避免出現錯誤頁面。

+1

看完答案後我完全理解。我想要做的是,我試圖在查詢字符串中傳遞一個URL,例如www.domain.com?retUrl=www.anotherdomain.com%3Fparameter%3D=value。實際上,我想在anotherdomain.com中收到我的參數值。有沒有辦法做到這一點? – Mikae

回答

9

/percent-encoding reserved characters之一。 URL使用percent-encoding reserved characters來定義它們的語法。只有當這些字符不在URL中的特殊角色中使用時,它們才需要進行編碼。百分比編碼

保留字符:

!  *  '  (  )  ;  :  @  &  =  +  $  ,  /  ?  #  [  ] 
%21  %2A  %27  %28  %29  %3B  %3A  %40  %26  %3D  %2B  %24  %2C  %2F  %3F  %23  %5B  %5D 
+0

我現在完全理解它。我想要做的是,我試圖在查詢字符串(如www.domain)中傳遞一個URL。COM?retUrl = www.anotherdomain.com%3Fparameter%3D =價值。實際上,我想在anotherdomain.com中收到我的參數值。有沒有辦法做到這一點? – Mikae

+1

例如,您可以通過執行http:// www.example.com/example /到http:// www.domain.com/page.php:http://www.domain。 COM/page.php文件?theURL = HTTP%3A%2F%2Fwww.example.com%2Fexample%2F'。 – Anne

+0

其實,domain.com是一種我無法控制的服務,www.example.com是我控制的東西。 domain.com將瀏覽器重定向到example.com。而且,我想在我的example.com頁面(www.example.com?parameter=value)中收到一個參數。這就是我在考慮使用URL編碼/解碼的原因。你有什麼想法我可以繼續? – Mikae

5

%2FURL逃脫/。這意味着,將/視爲字符,而不是目錄分隔符。

在本質上,它正在尋找stackoverflow.com/questions,而不是域stackoverflow.com與路徑questions

1

URL編碼例如使用用於編碼來自HTML表單的字符串URL參數,該表單包含特殊字符,如'/'。編寫「stackoverflow.com%2Fquestions」是錯誤的,在這種情況下,'/'是URL本身的一部分,並且不得編碼。