我正在做一些URL重定向在一个项目中,我目前正在工作。我是新的网络开发,并想知道什么是最好的做法是删除任何非法的路径字符,如'?等。
我希望我不必求助于手动替换每个字符与他们的编码网址。
我试过UrlEncode和HTMLEncode,但是UrlEncode不适合?,HTMLEncode不适合'
例如,如果我使用以下内容:
Dim name As String = "Dave's gone, why?"
Dim url As String = String.Format("~/books/{0}/{1}/default.aspx", bookID, name)
Response.Redirect(url)
我试过这样 Package URL:
Dim encodedUrl As String = Server.UrlEncode(url)
还有
Dim encodedUrl As String = Server.HTMLEncode(url)
2条答案
按热度按时间iaqfqrcu1#
URL规范(RFC 1738,12月'94)提出了一个问题,因为它将URL中允许的字符的使用限制为US-ASCII字符集的有限子集:
“...只有字母数字[0-9a-zA-Z]、特殊字符“$-_.+!*'()”、[不包括引号]和用于保留目的的保留字符可以在URL中以未编码的方式使用。”
所以我认为你需要担心?,在我的系统中
URL编码;转换:%7e%2f书籍%2f1%2f戴夫的+消失%2c+原因%3f%2fdefault.aspx
现在,你使用任何网址重写到这个?
klsxnrf12#
试着跟着,
我认为它是HttpUtility.UrlEncodeComponent,有关详细信息,请参阅msdn。