URI方案的有效字符?

时间:2010-09-04 09:51:16

标签: standards-compliance illegal-characters url-scheme custom-protocol

我在考虑Registering an Application to a URL Protocol,我想知道,计划中允许哪些字符?

一些例子:

  • h323(有号码)
    • h323:[<user>@]<host>[:<port>][;<parameters>]
  • z39.50r(也有.
    • z39.50r://<host>[:<port>]/<database>?<docid>[;esn=<elementset>][;rs=<recordsyntax>]
  • paparazzi:http(有:
    • paparazzi:http:[//<host>[:[<port>][<transport>]]/

那么,我可以使用哪些角色? 我们可以......

  • @:TwitterUser
  • #:HashTag
  • $:CapitalStock
  • ?:ID-10T

...等,如果需要,或者方案中的字符受标准限制?

3 个答案:

答案 0 :(得分:26)

根据RFC 2396,附录A:

  scheme        = alpha *( alpha | digit | "+" | "-" | "." )

含义:

该方案应以字母(大写或小写)开头,并且可以包含字母(仍为大写和小写),数字,“+”,“ - ”和“。”。


注意:在

的情况下
paparazzi:http:[//<host>[:[<port>][<transport>]]/
该计划只是“狗仔队”的一部分。

答案 1 :(得分:11)

scheme according to RFC 3986定义为:

scheme      = ALPHA *( ALPHA / DIGIT / "+" / "-" / "." )

因此,该方案必须以字母字符开头(A - Za - z),并且后面可以跟任意数量的字母数字字符{{ 1}},+-

答案 2 :(得分:6)

Quoth RFC 2396

  

方案名称由一系列以a开头的字符组成      小写字母后跟任何小写字母组合      字母,数字,加号(“+”),句号(“。”)或连字符(“ - ”)。