2013-03-25 57 views
1

我知道php的http_build_query() url-編碼查詢字符串中的反斜槓字符。我也知道反斜槓是一個保留字符,使得這個函數成爲所需的行爲。當程序員在他們的查詢字符串中使用未編碼的反斜槓時,我已經看到了我所尊重的人,並且一直想要做同樣的事情,以使我的網站看起來更好一些。什麼不好的事情(如果有的話),我不得不期望避免對我的反斜槓進行網址編碼?如果我在查詢調用中不對URL進行網址編碼,會發生什麼壞事?

我甚至開始考慮打破url編碼約定的原因是,谷歌在他們的查詢字符串中使用了加號。有沒有人知道他們發生了什麼壞事?

我最終試圖解決的問題是以某種方式將我的?q=MVC調用與人類易讀的,網址安全的字符分開,而不必設置多個查詢變量。

+0

使用'+'是在查詢字符串中發送單詞列表的一種非常常見的方式。我將引用RFC 1738:*方案名稱由一系列字符組成。小寫字母「a」 - 「z」,數字和字符加(「+」),句點(「。」)和連字符(「 - 」)是允許的。* – Tchoupi 2013-03-25 23:36:35

+0

你真的是指反斜槓\\)而不是斜槓(/)? – unor 2013-03-28 10:28:51

+0

@unor我認爲你可能是對的,他們可能使用斜槓...... – DudeOnRock 2013-03-28 19:49:52

回答

1

RFC是這個相當清楚的:

查詢= *( 「?」 PChar類型/ 「/」/)

字符斜槓( 「/」)和問號( 「?」)可以代表查詢組件內的數據 。要注意的是一些舊的,錯誤的 實現可能不正確地處理這些數據?

所以它的罰款在查詢部分用斜線(除非你有對付那名「大齡」早在實現2005)。

+0

我已經閱讀過這部分。我想我想知道的是:既然它可以不編碼反斜槓,如果我不這樣做,我會發生什麼? – DudeOnRock 2013-03-25 23:42:15

+0

@DudeOnRock:查看更新)) – georg 2013-03-25 23:43:43

+0

很酷,我會檢查一下,謝謝 – DudeOnRock 2013-03-25 23:47:36

相關問題