URL 编解码
链接里带中文,或者参数里有 & 、? 、# 这种符号,浏览器就会跟你闹脾气。这个工具就是把这些字符转成能安全放进 URL 的样子,反过来也能还原。
两种编码,别用错
这是最多人踩的坑。encodeURIComponent 会把 / ? & = # 这些都转义,encodeURI 不会。
所以有个简单的判断法:你要转的是"一整条链接",就用后者;要转的是"链接里某个参数的值",就用前者。
用反了会怎样?整条链接用 encodeURIComponent 转,? 和 & 全变成 %3F %26,链接就打不开了。
关于 + 号
还有一个老坑:表单提交的时候,空格会被编码成 +。但 URL 标准里空格应该是 %20。这两个东西在不同的解析器里会被当成不同的字符。
你粘进去的字符串里如果有 +,解码时它会先尝试按标准处理。如果不确定,先看看原文到底是 %20 还是 +,比猜快。