加密解密/编码
URL 编码解码
URL 编码(百分号编码)将 URL 中的特殊字符转换为 %XX 格式,确保安全传输。 编码:使用 encodeURIComponent 转义 解码:使用 decodeURIComponent 还原 保留字母、数字和 -_.!~*'() 等安全字符
加密解密/编码
两者目标不同:URL 编码把字符转成 %XX 的字节序列,用于让内容安全地进入 URL;HTML 实体把字符转成 &name; 或 &#nnn; 的形式,用于让内容安全地进入 HTML 文本。用错容器两边都不生效,还可能造成二次编码。
| URL 编码解码 | HTML 实体编解码 | |
|---|---|---|
| 输出形式 | %E4%B8%AD 这样的百分号序列 | &、©、' 这样的实体 |
| 适用容器 | URL 的查询参数与路径 | HTML / XML 的文本与属性值 |
| 谁负责解码 | 浏览器与服务器按 URL 规则 | HTML 解析器在渲染时 |
| 典型错误 | 对已编码的串再编码一次,% 变成 %25 | 把实体塞进 URL,浏览器不会解码 |
URL 编码(百分号编码)将 URL 中的特殊字符转换为 %XX 格式,确保安全传输。 编码:使用 encodeURIComponent 转义 解码:使用 decodeURIComponent 还原 保留字母、数字和 -_.!~*'() 等安全字符
HTML 实体编码将特殊字符转换为 HTML 安全的实体引用。 编码:将 < > & " 等转为实体 解码:将实体还原为原始字符 支持 37 个常用 HTML 实体
看目标容器:进 URL 用百分号编码,进 HTML 用实体。两者都要经过时顺序是「先 URL 编码,再把结果做 HTML 转义」,反过来会得到解码后仍是实体的错误结果。