Welcome toVigges Developer Community-Open, Learning,Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
126 views
in Technique[技术] by (71.8m points)

URL编码和ASCII编码有没有关系?

URL编码有编码表吗?它和ASCII编码有没有联系?


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

URL 编码的规定由 RFC-3986 给出。

要说跟 ASCII 有关系也有关系,要说没关系也没关系。

URL 编码规定只能包含英文字母(a-zA-Z)、数字(0-9)、和几个保留字符,这些字符的都包含在 ASCII 范围内;但不是所有 ASCII 字符都被 URL 编码允许,这个能理解不?

另外 URL 里每个“段”允许的保留字符是不一样的:

  • ?/ 在 Query 部分是不用被编码的;
  • :@-.\_~!$&’()*+,;= 这些字符在 Path 部分是不用被编码的;
  • /?:@-.\_~!$&’()*+,;= 在 Fragment 部分是不用被编码的。

以上这些保留字符只是说允许不编码,但不是说不能编码。比如 ? 在 Query 里如果是充当一个键值对的键或值的时候,还是得编码。


P.S. 最新的 RFC 规定里已经说 URL 在 HTTP 请求报文里需要是 UTF-8 编码的,所以看上去是 ASCII 里的部分字符,实际上是 UTF-8 中的部分字符。


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to Vigges Developer Community for programmer and developer-Open, Learning and Share
...