簡體   English   中英

ASP Response.Redirect不URL編碼“ +”號

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM