全部指南

URL 保留字符详解

URL 编码指南

URL 规范(RFC 3986)把字符大致分为 保留字符(reserved)非保留字符(unreserved)。了解这一划分,就能清楚什么时候必须编码、什么时候不必编码。

非保留字符(可原样使用)

字母、数字,以及 - _ . ~ 这四个符号可以出现在任何位置而无需编码。对它们编码并不会改变其含义,因此通常保持原样。

保留字符(具有结构含义)

保留字符用于划分 URL 的结构。若要把它们当作字面数据使用,就必须进行编码。

encodeURI 与 encodeURIComponent 的分界

encodeURI保留 上述保留字符,以免破坏一个已经完整的 URL 的结构。而 encodeURIComponent 会把它们 全部转换,这正是插入某个片段(例如单个参数值)时所需要的。

放入单个值时用 encodeURIComponent,处理整个地址时用 encodeURI——只要记住这条原则,就能避免大多数错误。