假設我我爲什麼要進行urlencode通過GET傳遞的URL
有什麼優勢做
'http://site.com/something?url=' . urlencode('http://lol.com/lol');
,而不是僅僅通過在URL中的未編碼版本(例如,安全等)在?爲什麼我應該urlencode通過GET傳遞的東西,而不是隻傳遞一個未編碼的版本(雖然當然,如果URL參數有&或?或=在裏面,那麼我肯定應該編碼它......但是假設他們沒有,爲什麼應該我編碼他們)
假設我我爲什麼要進行urlencode通過GET傳遞的URL
有什麼優勢做
'http://site.com/something?url=' . urlencode('http://lol.com/lol');
,而不是僅僅通過在URL中的未編碼版本(例如,安全等)在?爲什麼我應該urlencode通過GET傳遞的東西,而不是隻傳遞一個未編碼的版本(雖然當然,如果URL參數有&或?或=在裏面,那麼我肯定應該編碼它......但是假設他們沒有,爲什麼應該我編碼他們)
有URL中有特殊含義的字符。如果你在沒有編碼的情況下傳遞這些字符,那麼這些字符在外部URL中將具有特殊含義(而不是它們所屬的內部URL)。
例如,如果你想通過
http://example.com/foo?1=2&3=4
而且你不編碼,那麼你將獲得:
http://example.com/?url=http://example.com/foo?1=2&3=4
與
url is http://example.com/foo?1=2
3 is 4
假設他們沒有,我爲什麼要編碼他們
因爲那你必須看看你傳遞的每一個URL來決定它是否需要編碼。
總是編碼要簡單得多,而且不容易出錯,然後根據具體情況來決定。
只要我知道第二個示例是相當不錯的,如果你有在您的網址中使用unicode字符的可能性。