URL编码/解码器 常见问题

编码和解码URL字符串

什么是URL编码?

URL编码(百分号编码)用%XX替换特殊字符,其中XX是十六进制ASCII/UTF-8值。空格变为%20,&变为%26。这允许特殊字符在URL中安全传输,而不会触发其保留含义。

我应该何时进行URL编码?

编码放置在URL中的任何用户输入:搜索词、姓名、描述或任何用户控制的字符串。不要编码URL基础部分中的东西如:/?&=——只编码值。在JavaScript中对参数值使用encodeURIComponent()。

encodeURI和encodeURIComponent有什么区别?

encodeURI()保留保留字符(:/?&=)未编码,适合整个URL。encodeURIComponent()编码除字母数字和-_.!~*'()之外的所有内容,适合参数值。对于大多数用例,您想要encodeURIComponent用于值。

为什么我看到+而不是%20用于空格?

历史上,空格在查询字符串中被编码为+(application/x-www-form-urlencoded)。现代URL编码在任何地方都更喜欢%20。两者在查询字符串中都有效,但只有%20在URL路径中有效。我们的工具使用%20以获得通用兼容性。

如何处理非ASCII字符?

非ASCII字符(ü、中、و)首先转换为UTF-8字节,然后对每个字节进行百分号编码。ü变为%C3%BC(UTF-8字节C3 BC)。现代URL编码始终对国际字符使用UTF-8。

什么是双重编码?

当您编码已经编码的字符串时,会发生双重编码:%20变为%2520。这会破坏URL——它们字面显示%20而不是将其解释为空格。如果不清楚输入是否已编码,在重新编码之前始终解码。

试用工具

编码和解码URL字符串

URL编码/解码器