我有一些正在用JavaScript編碼的查詢文本,但我遇到了一個用例,我可能必須在服務器端編碼相同的文本,並且發生的編碼不是相同。我需要它是一樣的。這是一個例子。Url編碼引號和空格
我在搜索框中輸入"I like food"
並點擊search
按鈕。 JavaScript將其編碼爲%22I%20like%20food%22
假設我在服務器端獲取與請求對象上的字符串相同的值。它看起來像這樣:"\"I like food\""
當我使用HttpUtility.UrlEncode(value)
時,結果是"%22I+like+food%22"
。如果我使用HttpUtility.UrlPathEncode(value)
,結果是"\"I%20like%20food\""
所以UrlEncode
正在編碼我的引號,但使用空格的+
字符。 UrlPathEncode
正在編碼我的空間,但不編碼我的轉義引號。
我真的需要它來做,否則搜索代碼完全borks我(我無法控制搜索代碼)。
小貼士?
做一個字符串搜索/替換以替換%20的空格,然後執行常規UrlEncode? – 2011-01-27 18:17:00
@Marc乙:這不會使UrlEncode對「%」字符進行編碼(每個空間導致%2520)? UrlPathEncode非常奇怪的行爲。至少UrlEncode將文件從空格轉換爲「+」。 UrlPathEncode sais沒有關於不轉換引號... – 2011-01-27 18:35:41
嗯。好點子。我猜你可以用其他方式,UrlEncode首先,然後用%20's搜索/替換+' – 2011-01-27 18:38:12