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电子邮件地址,大多数尝试也不能捕获标准允许的所有地址。