【问题标题】:Non-reserved yet safe characters for delimiters in a URLURL 中分隔符的非保留但安全字符
【发布时间】:2012-01-08 10:40:55
【问题描述】:

我在 StackOverflow 上看到以下关于 URL 字符的内容:

您需要注意两组字符 - 保留字符和不安全字符。 保留字符是:

  • 和号(“&”)
  • 美元(“$”)
  • 加号(“+”)
  • 逗号(“,”)
  • 正斜杠(“/”)
  • 冒号(“:”)
  • 分号(“;”)
  • 等于(“=”)
  • 问号(“?”)
  • 'At' 符号 ("@")。

一般认为不安全的字符有:

  • 空间,
  • 问号(“?”)
  • 小于和大于("<>")
  • 打开和关闭括号(“[]”)
  • 打开和关闭大括号(“{}”)
  • 管道(“|”)
  • 反斜杠(“\”)
  • 插入符号(“^”)
  • 波浪号(“~”)
  • 百分比(“%”)
  • 磅(“#”)。

我正在尝试对 URL 进行编码,以便可以使用分隔符对其进行解析。它们不能是数字或字母。有没有人有一个未保留但可以安全使用的字符列表?

感谢您提供的任何帮助。

【问题讨论】:

  • 您到底想如何解析 URL?
  • 您希望有多少“字段”被这些分隔符分隔?
  • 嗨..我有 3 个字段...所以像 A473648444|42433^23422和 ^ 是分隔符...然后我会根据它们解析字符串

标签: url get


【解决方案1】:

不要费心尝试使用安全/未保留的字符。只需使用您想要的任何分隔符并对整个内容进行 URLencode。然后在另一端进行 URL 解码并正常解析。

您是否有理由不能只对 URL 参数 (&) 使用标准分隔符?这是最直接的方法,而不是尝试自己动手。

例如,标准的 URL 语法本身就允许多值参数。这是完全合法的,不需要任何诡计。

Somepage.aspx?parameterName=A&parameterName=B

结果是页面将在 parameterName 属性中传递“A,B”。

【讨论】:

  • 所以如果它被编码,我可以使用不安全的字符吗?我正在使用 .Net 并将研究如何做到这一点?谢谢!!
  • 是的,如果您对 URL 进行 URL 编码,您应该可以在 URL 中放入任何内容。查找 Server.URLEncode。
猜你喜欢
  • 2018-12-23
  • 1970-01-01
  • 1970-01-01
  • 2013-02-01
  • 1970-01-01
  • 1970-01-01
  • 2012-05-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多