.net URL编码-非法字符替换

pgky5nke  于 2022-12-27  发布在  .NET
关注(0)|答案(2)|浏览(153)

我正在做一些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)
iaqfqrcu

iaqfqrcu1#

URL规范(RFC 1738,12月'94)提出了一个问题,因为它将URL中允许的字符的使用限制为US-ASCII字符集的有限子集:
“...只有字母数字[0-9a-zA-Z]、特殊字符“$-_.+!*'()”、[不包括引号]和用于保留目的的保留字符可以在URL中以未编码的方式使用。”
所以我认为你需要担心?,在我的系统中
URL编码;转换:%7e%2f书籍%2f1%2f戴夫的+消失%2c+原因%3f%2fdefault.aspx
现在,你使用任何网址重写到这个?

klsxnrf1

klsxnrf12#

试着跟着,

String.Format("~/books/{0}/{1}/default.aspx", bookID, Server.UrlEncode(name))  

String.Format("~/books/{0}/{1}/default.aspx", bookID, 
    Server.UrlEncodeComponent(name))

我认为它是HttpUtility.UrlEncodeComponent,有关详细信息,请参阅msdn。

相关问题