你是否曾经复制过带空格的URL,然后看着它神奇地变成一堆百分号和数字?这就是URL编码的作用——它是保持互联网正常运转的无名英雄。🔗
如果你曾经将链接粘贴到电子邮件中却导致其失效,或者想知道为什么你的API请求返回的是乱码,URL编码(或缺乏编码)很可能是罪魁祸首。让我们来揭开这个谜团,并告诉你如何 即时编码和解码URL.
URL编码到底是什么?
URL只能包含有限的字符集。字母、数字和少数符号可以包含在内。其他所有内容——空格、和号、问号、表情符号、非ASCII字符——都需要转换为URL可以处理的格式。
那种格式是 百分比编码。每个不安全字符都被替换为百分号,后跟其十六进制值。所以:
space→%20&→%26=→%3D?→%3F@→%40
没有这种编码,浏览器和服务器将不知道一个URL参数在哪里结束,另一个在哪里开始。混乱将会发生。猫狗同住。大规模恐慌。
你实际需要URL编码的时候
当你这样做的时候,你就会想对URL进行编码:
- 构建API请求 ——带有用户输入的查询参数需要编码,否则你的请求将惨败
- 在URL中传递数据 ——分享带有特殊字符的链接?先对它们进行编码
- 处理表单数据 ——表单提交默认使用URL编码
- 处理非ASCII文本 ——日语、阿拉伯语、表情符号?都需要编码
基本上,如果你将任何用户生成的内容放入URL中,请对其进行编码。你未来调试神秘400错误时的自己会感谢你。
URL编码与Base64:并非一回事
快速澄清一下,因为这会让人困惑:URL编码和Base64编码是完全不同的东西。
URL编码 只转义“不安全”字符,并保持其他所有内容可读。 Hello World 变成 Hello%20World ——仍然相当可识别。
Base64 将所有数据转换为完全不同的字母表。 Hello World 变成 SGVsbG8gV29ybGQ= ——完全不可读的乱码(至少对人类来说)。
对URL使用URL编码。当你需要将二进制数据嵌入文本时,使用Base64。很简单。💡
简单的方法:IO Tools URL编码器/解码器
当然,你可以编写JavaScript来处理这个问题(“encodeURIComponent() 是你的朋友),但当你只需要粘贴文本就能获得即时结果时,为什么还要费力呢?
我们的 URL编码器/解码器 的作用正如其名:
- 粘贴你的文本,选择“编码”,获得URL安全的输出
- 粘贴编码后的URL,选择“解码”,查看原始文本
- 实时处理——无需等待,无需刷新页面
- 在底层使用标准的JavaScript方法,因此结果可靠
无需注册。没有恼人的广告。只有一个功能完善的工具。
常见的URL编码陷阱
有几件事需要注意:
- 双重编码 ——如果某个内容已经被编码,再次编码会变成
%20进入%2520。如果不确定,请先解码。 - 加号 ——在查询字符串中,
+有时代表空格。这是来自表单提交的一个遗留问题。我们的工具可以正确处理。 - 路径与查询编码 ——URL路径与查询参数的规则略有不同。我们的工具使用
encodeURIComponent,这在大多数情况下是最安全的选择。
去编码一些东西吧
下次当你面对一个损坏的URL或调试一个返回乱码的API时,请记住:编码可能是答案。
前往 URL编码器/解码器 并试用一下。你的百分号在等着你。🔥
