经典 ASP Response.redirect 编码问题

Classic ASP Response.redirect encoding issue

我在 vbscript 中有一些遗留的经典 ASP 代码,我支持这些代码重定向到不同的 URLs。

我对 response.redirect 有一个问题 URL:

http://www.michelson.pl/kolczyki-z-bialego-zlota-z-2-diamentami-o-szlifie-princess-masy-0-40ct;1363853/

response.redirect 似乎将 ; 编码为 %3B 生成下面的无效 URL:

http://www.michelson.pl/kolczyki-z-bialego-zlota-z-2-diamentami-o-szlifie-princess-masy-0-40ct%3B1363853/

关于如何解决这个问题的任何想法?

问题是“;”。您可以将 url 的字符串拆分为“;”然后你可以删除“;”之后的部分。我也看过 link 运行。

经过更多的谷歌搜索后,似乎有一种可能的方法可以解决这个问题,使用以下方法通过 headers 创建重定向:

Response.Status = "302 Object Moved"
Response.AddHeader "Location", url
Response.Write "<HTML>"
Response.Write "<BODY>"
Response.Write "This file was moved to "
Response.Write "<A HREF=""" & url & """>here.<A>"
Response.Write "</BODY>"
Response.Write "</HTML>"
Response.End

这会创建一个成功的重定向到 http://www.michelson.pl/kolczyki-z-bialego-zlota-z-2-diamentami-o-szlifie-princess-masy-0-40ct;1363853/,并且没有编码 ;到 %3B