2015-06-08 94 views
-2

我有一些遗传的经典ASP代码在VBScript我支持重定向到不同的URL。经典ASP Response.redirect编码问题

我有一个问题在以下URL的Response.Redirect:

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/

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

+0

该URL不是无效的,它只是编码了'%3B'是URL编码形式的';'。如果你想回到解码表单,你需要一个'UrlDecode()'函数,我相信互联网上有样本。过去使用[Motobit Software](http://www.motobit.com/)的[URLDecode函数](http://www.motobit.com/tips/detpg_URLDecode/),效果很好。关于[使用Server.URLEncode](http://www.4guysfromrolla.com/webtech/042601-1.shtml)上的[4Guys From Rolla](http://www.4guysfromrolla.com/)的有用文章 – Lankymart

+0

谢谢,但问题似乎是Response.redirect正在添加%3B编码 - 我们传入的字符串未经编码。我不知道一种方法来解码值,一旦它已经传递给Response.Redirect未编码。 –

+0

是的,这是因为它的目的是做到这一点 - [URL编码 (或:'什么是URL中的'%20'代码?']](http://www.blooberry.com/indexdot/html/topics/ urlencoding.htm)*(';'是RFC 1738规范中的保留字符)* – Lankymart

回答

2

后多一点谷歌搜索似乎还有解决这个可能的方式使用下列创建通过头部重定向:

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

-1

问题是“;”。你可以通过“;”来分割url的字符串然后可以在“;”之后删除该部分。我已经看到链接也运行。

+0

整个URL需要存在。我们无法删除它的任何部分。 The;必须保持某种形式。 –