🔗 URL 编码 / 解码
🔒 本工具完全在你的浏览器里运行,输入内容不会上传到任何服务器。
ℹ️ 计算与转换结果仅供参考;用于生产环境、财务、法务等重要场合前,请自行复核。
这是什么
网址里只能直接出现一小部分字符:字母、数字和 - . _ ~。中文、空格以及 &、=、# 等有特殊含义的符号,必须转换成“百分号加两位十六进制”的形式才能安全传输,这就是 URL 编码,也叫百分号编码,规则写在 RFC 3986 里。例如“你好”按 UTF-8 编码后是 %E4%BD%A0%E5%A5%BD,每个汉字占 3 个字节。
怎么用
编码:选“参数值”时,所有特殊字符都会转义,适合处理放在 ?q= 后面的内容;选“整个网址”时,保留 :、/、?、&、= 等网址结构字符,只转义中文和空格。解码:粘贴带 % 的内容后点“解码”,字符集默认 UTF-8;如果解出来报错或是乱码,可能来自较老的网站,切换到 GBK 再试。
示例
a b&c=d 按“参数值”编码为 a%20b%26c%3Dd。%D6%D0%CE%C4 用 UTF-8 解不出来,用 GBK 解码就是“中文”。表单提交(application/x-www-form-urlencoded)习惯把空格写成 +,可勾选对应选项。想弄清乱码原理,可读《URL 编码是什么:中文网址变成 %E4%BD%A0 的原因》。
常见问题
编码时要选“参数值”还是“整个网址”?
只处理 ?q= 后面的某个值,选“参数值”,这样值里的 & 和 = 不会破坏网址结构;已经是完整网址、只想把中文和空格转义,选“整个网址”。
空格为什么有时是 %20,有时是 +?
%20 是网址里的标准写法;+ 只在表单格式(查询字符串里的 application/x-www-form-urlencoded)中表示空格。路径部分的 + 就是普通加号,不要随意替换。
解码后是乱码怎么办?
先确认原文使用的字符集。现在的网站绝大多数使用 UTF-8;少数老系统用 GBK,切换“解码字符集”为 GBK 再试。
提示 % 后面不是两位十六进制数?
说明字符串被截断,或者其中的 % 本来是普通字符。普通的百分号在编码时应写成 %25。