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 = "!" / "$" / "&" / "'" / "(" / ")" / "*" / "+" / "," / ";" / "=" 

所以它基本上是AZAZ09-._~ !$&'()*+ ;=:@以及必须跟随两个hex数字的%。 任何其他字符/字节需要使用百分号编码进行编码 。

虽然这些字符总共可以用79个字符,但是有些用户代理也会对这些字符进行编码(例如%7E而不是~ )。 这就是为什么许多人只使用了62个字母数字字符(即AZaz0 ),或者使用URL和文件名安全字母表 (即AZaz0_ )。

根据RFC 3986 , path组件的有效字符是:

 az AZ 0-9 . - _ ~ ! $ & ' ( ) * + , ; = : @ 

以及编码百分比的字符,当然还有斜线/

但请记住,许多尝试parsingURI以使其可点击的应用程序(不一定是浏览器),例如,可能支持更小的一组字符。 这类似于parsing电子邮件地址,大多数尝试也不能捕获标准允许的所有地址。