繁体   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