URL 编码器 / 解码器
在浏览器中即时编码和解码URL及URI组件。免费、私密,无需上传。
在浏览器中即时编码和解码URL及URI组件。免费、私密,无需上传。
URL 编码(正式的百分比编码,在 RFC 3986 中定义)将 URL 中具有特殊含义的字符(空格、斜线、与号、井号)转换为使用百分号后跟十六进制数字的安全形式。空格字符变为 %20(或在表单编码上下文中为 +),& 符号变为 %26,依此类推。如果没有这种编码,特殊字符将被解释为 URL 语法而不是文字数据,从而破坏 URL 或导致意外行为。
存在两种相关但不同的编码。标准 URL 组件编码对非保留字符集之外的所有内容使用 % 转义:A-Z、a-z、0-9、连字符、下划线、句点、波形符。表单编码变体 (application/x-www-form-urlencoded) 另外将空格视为加号,并对其他一些字符使用不同的规则。 JavaScript的encodeURIComponent使用严格的组件编码; encodeURI 使用更宽松的形式来保留 URL 结构字符。
该工具提供编码和解码。编码模式将每个需要转义的字符以%HH格式包裹起来;解码模式反转转换。两者都使用内置 JavaScript URL 函数完全在浏览器中运行,因此不会将数据发送到任何地方。
任何时候 URL 中包含数据——查询字符串参数、包含用户输入的路径段、重定向目标——都需要正确的编码。编码失败会产生在出现特殊字符时中断的 URL,泄漏参数边界到查询字符串(将 &x=1 变成单独的参数),或者作为格式错误的请求被 Web 服务器阻止。
解码则相反:从编码的 URL 中提取原始数据。浏览器地址栏通常以编码形式显示 URL;解码揭示了实际意图。日志记录、调试和安全分析都受益于显示原始参数和路径的解码 URL。
粘贴字符串,选择方向。
encodeURIComponent 对未保留集 [A-Za-z0-9-_.~] 之外的每个字符进行编码。空格变为 %20,加号变为 %2B,等号变为 %3D,依此类推。 ASCII 之外的字符首先以 UTF-8 进行编码,然后对每个字节进行 % 转义。
encodeURI 更加宽松,适用于完整 URL 而不是组件。它不会转义 /、?、&、=、# 和其他一些字符,因为这些字符具有 URL 语法含义。对于在 URL 中嵌入用户数据,encodeURIComponent 几乎总是正确的选择。
decodeURIComponent 反转 %-转义符,验证每个转义符格式正确,并且结果字节形成有效的 UTF-8。格式错误的输入会引发错误,而不是产生垃圾。