暂无最近使用记录
暂无收藏工具

URL编码解码 - 在线转码工具

编码/解码URL中的特殊字符和中文

URL编码知识

什么是URL编码?
URL编码将特殊字符转换为%XX格式,确保URL在网络传输中不被破坏或误解。
中文URL编码
中文字符会被转换为UTF-8字节的百分号编码,如"中"→"%E4%B8%AD"。
encodeURIComponent
编码所有特殊字符,适合URL参数值。会编码 : / ? # 等字符。
encodeURI
保留URL结构字符,适合完整URL编码。不编码 : / ? # @ 等字符。
URL安全字符
字母A-Z、a-z,数字0-9,以及-_.~这4个字符是URL安全字符,不需要编码。
空格的编码
空格在URL中可以编码为%20或+号,表单提交通常用+号,路径中用%20。

常见问题

Q encodeURI和encodeURIComponent有什么区别?
A encodeURI用于编码完整URL,会保留URL结构字符(如://、/、?、#、&、=)。encodeURIComponent用于编码URL参数值,会编码所有特殊字符。参数值应该用encodeURIComponent。
Q 为什么URL中的中文要编码?
A URL规范规定只能包含ASCII字符。中文等非ASCII字符必须编码,否则可能在传输过程中被破坏。编码后的URL在任何系统和浏览器中都能正确传输和解析。
Q %20和+号作为空格有什么区别?
A %20是RFC 3986标准的空格编码,用于URL路径;+号是application/x-www-form-urlencoded格式的空格编码,用于表单提交的查询字符串。现代推荐统一使用%20。
Q 已经编码的URL再编码会怎样?
A 会产生双重编码问题。例如%20会变成%2520。解码时就需要多解码一次。在编码前应检查内容是否已经编码,避免重复编码导致的错误。
Q 解码失败提示"URI malformed"是什么原因?
A 通常是因为输入的字符串不是有效的URL编码格式,比如%后面不是两位十六进制数,或者编码不完整。检查输入是否确实是URL编码后的内容。
Q 前端发请求时参数需要手动编码吗?
A 使用现代API(如fetch、axios)时,URL参数通常会自动编码。但手动拼接URL字符串时需要用encodeURIComponent编码参数值,避免特殊字符破坏URL结构。

常见字符编码对照

字符编码说明
空格%20+URL中最常见的转义字符
!%21感叹号
#%23井号,URL锚点符号
%%25百分号自身需要转义
&%26URL参数分隔符
=%3DURL参数赋值符
?%3FURL查询字符串起始符
/%2F路径分隔符

相关工具