URL中分隔符的非保留但安全的字符

时间:2011-11-29 01:51:05

标签: url get

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

  

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

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

通常认为不安全的人物是:

     
      
  • space,
  •   
  • 问号(" ?")
  •   
  • 小于和大于(&#34; <>&#34;)
  •   
  • 打开和关闭括号(&#34; []&#34;)
  •   
  • 打开和关闭大括号(&#34; {}&#34;)
  •   
  • pipe(&#34; |&#34;)
  •   
  • 反斜杠(&#34; \&#34;)
  •   
  • 插入符号(&#34; ^&#34;)
  •   
  • 代字号(&#34; ~&#34;)
  •   
  • 百分比(&#34; %&#34;)
  •   
  • 磅(&#34; #&#34;)。
  •   

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

感谢您提供的任何帮助。

1 个答案:

答案 0 :(得分:4)

不要试图使用安全/未保留的字符。只需使用您想要的任何分隔符,并对整个事物进行URL编码。然后URL在另一端解码并正常解析。

您是否有理由不能仅使用标准分隔符作为URL参数(&amp;)?这是最简单的方法,而不是试图自己动手。

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

Somepage.aspx?parameterName=A&parameterName=B

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