在IIS5.0之前,Response.Redirect没有对您所要编码的字符串进行编码。URLEncode字符串是您自己的责任。
在IIS 4.0上,我们使用了
Response.Redirect Server.URLEncode("Page,One.asp")在IIS5.0中,我们刚刚开始使用
Response.Redirect("Page,One.asp")因此,新的Response.Redirect函数URLEncodes您的字符串,没有其他选项。
只有一个问题。我不能在字符串中传递"+“号。当执行Response.Redirect("sum=1+3")时,您希望它编码所有非字母数字字符,但是"+“符号会变成接收页面上的空格字符。
执行Response.Redirect(“sum=1%2B3”)时,由于服务器上不存在"sum%3D1%25B23“,因此接收到"404 Not”,因为%2B被编码了两次。
我希望"+“被编码为%2B,以便接收页面能够理解它实际上是某个文本的一部分并显示它。
让我举个例子:当你在浏览器中输入http://translate.google.com/#en|tr|1%2B2,pres进入时,你会看到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")重定向,但转义和反转义函数支持UTF-8和ASCII的某些部分(0-127),但不支持高ANSI (128-255)字符,特别是欧洲重音字符。
有什么建议吗?
发布于 2011-01-31 19:39:52
因此,新的Response.Redirect函数URLEncodes您的字符串,没有其他选项。
你说别无选择是什么意思?
server.urlencode仍然存在
https://stackoverflow.com/questions/4765453
复制相似问题