URL的目录部分的有效字符(用于简短链接)
除了A-Za-z0-9之外,还有其他什么字符可以用来缩短链接而不会陷入麻烦…… :)我正在考虑+, – 或者什么。
是否有一个定义的标准,哪些字符可以在浏览器厂商尊重的url中使用?
path段 (绝对URIpath中由/
分隔的path中的部分)可以包含零个或多个如下定义的pchar :
pchar = unreserved / pct-encoded / sub-delims / ":" / "@" pct-encoded = "%" HEXDIG HEXDIG unreserved = ALPHA / DIGIT / "-" / "." / "_" / "~" sub-delims = "!" / "$" / "&" / "'" / "(" / ")" / "*" / "+" / "," / ";" / "="
所以它基本上是A
– Z
, A
– Z
, 0
– 9
, -
, .
, _
, ~
!
, $
, &
, '
, (
, )
, *
, +
;
, =
, :
, @
以及必须跟随两个hex数字的%。 任何其他字符/字节需要使用百分号编码进行编码 。
虽然这些字符总共可以用79个字符,但是有些用户代理也会对这些字符进行编码(例如%7E
而不是~
)。 这就是为什么许多人只使用了62个字母数字字符(即A
– Z
, a
– z
, 0
),或者使用URL和文件名安全字母表 (即A
– Z
, a
– z
, 0
, _
)。
根据RFC 3986 , path组件的有效字符是:
az AZ 0-9 . - _ ~ ! $ & ' ( ) * + , ; = : @
以及编码百分比的字符,当然还有斜线/
。
但请记住,许多尝试parsingURI以使其可点击的应用程序(不一定是浏览器),例如,可能支持更小的一组字符。 这类似于parsing电子邮件地址,大多数尝试也不能捕获标准允许的所有地址。