URL 最早的设计(1994 年)只允许使用一部分 ASCII 字符,包括字母、数字、少数符号。任何超出这个范围的字符——比如中文、空格、引号——都不能直接出现在 URL 里。

解决办法是「百分号编码」:把字符按 UTF-8 转成字节,每个字节写成 % 加两位十六进制。「中」字在 UTF-8 里是 E4 B8 AD 三个字节,写成 %E4%B8%AD 就行了。

所以 %E4%B8%AD%E6%96%87 解码出来就是「中文」两个字。整个过程是可逆的,不涉及密钥。

日常遇到最多的地方是查询参数。比如你在百度搜「你好」,地址栏里那个 wd=%E4%BD%A0%E5%A5%BD 就是被编码过的参数。搜索引擎拿到之后解码回「你好」再去查。

实际建议:如果你在写代码时拼接 URL 参数,一定用 encodeURIComponent 处理,不要手动替换——手写的迟早会漏字符或者编码错误。