[英]ASP Response.Redirect Does Not URLEncode “+” Sign
在IIS 5.0之前,Response.Redirect未對您私有的字符串進行編碼。 URLEncode字符串是您自己的責任。
在IIS 4.0上,我們使用了
Response.Redirect Server.URLEncode("Page,One.asp")
使用IIS 5.0,我們開始僅使用
Response.Redirect("Page,One.asp")
因此,新的Response.Redirect函數URLEncodes您的字符串,沒有其他選擇。
只有一個問題。 我不能在字符串中傳遞“ +”號。 當執行Response.Redirect("sum=1+3")
,您希望它對所有非字母數字字符進行編碼,但是在接收頁面上,“ +”號變成空格字符。
執行Response.Redirect(“sum=1%2B3”)
,由於%2B被編碼兩次,因此服務器上不存在“ sum%3D1%25B23”,因此收到“ 404 Not Found”。
我希望將“ +”編碼為%2B,以便接收頁面理解它實際上是某些文本的一部分並顯示它。
讓我舉一個例子:當您在瀏覽器中輸入http://translate.google.com/#en|tr|1%2B2並按ENTER鍵時,您將看到google接受%2B並將其解碼為+文本區域。
都沒有
Response.Redirect(“ http://translate.google.com/#en|tr|1%2B2”)
要么
Response.Redirect(“ http://translate.google.com/#en|tr|1+2”)
效果與我給出的示例相同。 我只想重定向到該頁面。
還有另一種方式,例如首先編碼字符串,然后使用Response.Redirect unescape("Page%2COne%2Easp")
重定向Response.Redirect unescape("Page%2COne%2Easp")
但是轉義和unescape函數支持UTF-8和ASCII(0-127)的某些部分,但不支持高ANSI(128-255)字符,尤其是歐洲帶重音符號的字符。
有什么建議么?
因此,新的Response.Redirect函數URLEncodes您的字符串,沒有其他選擇。
您是什么意思,別無選擇?
server.urlencode仍然存在
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.