【问题标题】:URL Encoding - Illegal Character ReplacementURL 编码 - 非法字符替换
【发布时间】:2010-12-24 20:03:05
【问题描述】:

我正在我目前正在处理的项目中进行一些 url 重定向。我是 Web 开发的新手,想知道删除任何非法路径字符的最佳做法是什么,例如 ' ?等等

我希望我不必手动将每个字符替换为其编码的 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)

我试过这样包装网址:

Dim encodedUrl As String = Server.UrlEncode(url)

Dim encodedUrl As String = Server.HTMLEncode(url)

提前致谢。

附:圣诞快乐

【问题讨论】:

  • ? 是有效的 URL 字符。你想做什么?你能发布输入和想要输出的例子吗?
  • 我正在使用 url 重写并在默认页面中获取信息。但是在使用 UrlEncode 时,我不断收到“找不到页面”或“错误请求”。

标签: .net asp.net vb.net urlencode


【解决方案1】:

URL 规范(RFC 1738,2094 年 12 月)提出了一个问题,因为它将 URL 中允许的字符的使用限制为 US-ASCII 字符集的有限子集:

"...只有字母数字 [0-9a-zA-Z], 特殊字符 "$-_.+!*'()," [不包括引号 - ed],和 用于他们的保留字符 可使用保留用途 在 URL 中未编码。”

所以我认为您需要担心?,以及在我的系统上

网址编码;转换:%7e%2fbooks%2f1%2fDave's+gone%2c+why%3f%2fdefault.aspx

现在,您是否使用任何 url 重写?

【讨论】:

  • 我正在使用url重写耶
  • 重写模块可能有问题。你能告诉我们你正在使用哪个模块以及你的重写规则吗
【解决方案2】:

尝试关注,

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 了解更多信息。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-10-05
    • 2012-05-13
    • 1970-01-01
    • 2023-02-10
    • 2014-02-02
    • 1970-01-01
    • 2017-10-14
    • 1970-01-01
    相关资源
    最近更新 更多