URL 编码

在下方粘贴文本并点击编码进行百分号编码以用于URL。所有处理均在浏览器中本地完成。

已复制!

什么是URL编码?

URL编码(百分号编码)将URL中的不安全字符替换为 % 后跟两个十六进制数字。例如,空格变为 %20& 变为 %26

标准 模式编码所有特殊字符——在编码单个值(如搜索查询)时使用。完整URL 模式保留URL结构字符如 :/?#——在编码整个URL时使用。

三种模式的差别只在于放过哪些字符。只编码一个值时,保留字符一个都不会留下,值里面的斜杠会变成 %2F 而不是路径分隔符。编码整个 URL 时,让它成其为 URL 的那些分隔符会被保留。表单编码遵循浏览器提交 HTML 表单时的做法,空格会变成加号。你还可以选择字符集,这一点很重要,因为老系统百分号编码的往往不是 UTF-8 的字节。

正在排查一个死活解不开的问题?

解不开的数据包通常是症状而不是病根:链路上某处做了两次编码、字符集是被假定而不是被声明、令牌签名所覆盖的字节和大家以为的并不完全一致。这类活我们在做,围绕集成、API 以及在它们之间传递数据的系统。

说说哪里出了问题

常见问题

什么是 URL 编码?
URL 编码又叫百分号编码,它把一个字符换成百分号加上该字符每个字节的十六进制值。URL 能承载的字符很少,所以从空格到表情符号,其余的一切都得以这种形式传递。
该编码单个值还是整个 URL?
往查询串、路径片段或锚点里放文本时,编码单个值,否则里面的斜杠或与号会把 URL 拆散。只有在已经有一个合法 URL、又想保住构成它结构的分隔符时,才编码整个 URL。
空格为什么有时会变成加号?
因为表单数据遵循 x-www-form-urlencoded 规则,把空格写成加号,而 URL 的其他部分写成 %20。表单解析器把两者都读回空格,但只有 %20 放在路径里是安全的。
我会用到 UTF-8 以外的字符集吗?
很少,但确实会。老的应用编码的是 Windows-1252、ISO-8859-1 或 Shift_JIS 的字节,所以为这类系统准备的值如果按 UTF-8 处理就会变成乱码。请选对方实际使用的字符集。
会有内容发送到你们服务器吗?
不会。整个页面用标准的 Web API 在你的浏览器里运行,你的文本不会离开这个标签页。因此拿它处理令牌、内网 URL 等你不愿粘贴到远程服务的内容是安全的。