除了A-Za-z0-9之外还有其他任何字符可用于缩短链接而不会遇到麻烦...... :) 我在考虑+,; - 或其他什么。
是否有一个定义的标准可以在浏览器供应商尊重的网址中使用哪些字符?
答案 0 :(得分:84)
绝对URI路径中的path segment(路径中由/
分隔的部分)可以包含零个或多个 pchar ,其定义如下:
pchar = unreserved / pct-encoded / sub-delims / ":" / "@"
pct-encoded = "%" HEXDIG HEXDIG
unreserved = ALPHA / DIGIT / "-" / "." / "_" / "~"
sub-delims = "!" / "$" / "&" / "'" / "(" / ")"
/ "*" / "+" / "," / ";" / "="
所以它基本上是A
- Z
,a
- z
,0
- 9
,-
,{{ 1}},.
,_
,~
,!
,$
,&
,'
,{{1} },(
,)
,*
,+
,,
,;
,=
,以及{{1必须后跟两个十六进制数字。任何其他字符/字节都需要使用percent-encoding进行编码。
虽然总共有79个字符可以在字面上用于路径段,但是一些用户代理也会对其中一些字符进行编码(例如:
而不是@
)。这就是为什么许多人只使用62个字母数字字符(即%
- %7E
,~
- A
,Z
- a
)或{ {3}}(即z
- 0
,9
- A
,Z
- a
,z
,{{ 1}})。
答案 1 :(得分:26)
根据RFC 3986,路径组件的有效字符为:
a-z A-Z 0-9 . - _ ~ ! $ & ' ( ) * + , ; = : @
以及百分比编码的字符,当然还有斜杠/
。
请记住,例如,许多尝试解析URI以使其可点击的应用程序(不一定是浏览器)可能支持更小的字符集。这类似于解析电子邮件地址,其中大多数尝试也没有捕获标准允许的所有地址。