URL 编解码
对 URL 查询参数进行编码(encodeURIComponent)与解码(decodeURIComponent)。
Advertisement
常见问题
什么时候需要 URL 编码?
当 URL 的查询参数(query string)中包含中文、空格、特殊字符(如 &、=、#、%)时,需要对这些字符进行 URL 编码,否则可能导致参数解析错误或请求失败。浏览器地址栏也会自动对非 ASCII 字符进行百分比编码(Percent-encoding)。
encodeURIComponent 和 encodeURI 有什么区别?encodeURIComponent 会对参数值中的所有特殊字符(包括 &、=、? 等)进行编码,适合编码查询参数的值;encodeURI 只编码整个 URL 中非法的字符,保留 &、=、?、# 等 URL 结构字符,适合编码完整的 URL 地址。简单说:编码参数用 encodeURIComponent,编码整个 URL 用 encodeURI。
相关指南
编码不是加密:Base64、URL 转义和 Unicode 转义各自遵守什么规则
站内三个编码页做的都是「换一种写法」:Base64 先按 UTF-8 取字节再编码,URL 转义只保留少数安全字符且不会把加号当空格,Unicode 转义连字母 A 都要改写成六个人类可读的字符。三者都可逆,所以真正决定结果对不对的是边界:填充符、加号、代理对,以及结果落在哪个框里。