网址解码
在浏览器里解码百分号编码的网址与查询字符串,遇到格式错误的序列会明确告诉你是哪一段。
在你的浏览器中运行
还没有东西可以编码。
解码才看得出一个连结真正在做什么
百分号编码会把结构藏起来。追踪连结、OAuth 转址、或是 ?next= 参数,通常都是网址里包着网址、
再包着网址,唯一能读懂它的方法就是解码——而且常常要解不只一次。
如果解出来的结果里还有 %25,那是一个被编码过的 %,表示这段文字被编码了两次。再解一次。
+ 的问题
application/x-www-form-urlencoded——也就是 HTML 表单送出的格式——用 + 表示空白,而不是
%20。在其他所有地方,+ 就是一个真正的加号。
字符串本身不会告诉你手上的是哪一种,所以这里有一个开关:
- 解码来自表单的查询字符串时,打开它。
- 解码路径,或任何含有电子邮件地址、base64 值的内容时,关掉它。base64 会把
+当成真正 的字元,把它们变成空白会不声不响地毁掉数据。
解不开的时候
百分号后面必须刚好接两个十六进位数字。50% off 不是合法的百分号编码,被换行截断的序列也不是。
这里不会只丢一句「URI malformed」,而是把出问题的那一段escape指出来——通常一眼就能看出文字被
截断了,或是某个原本就该被编码的 % 从头到尾没被处理。
即使每一段escape各自合法,整组合起来仍可能拼不出合法的 UTF-8。那通常表示原文是用其他字元集 编码的,而从这个片段里救不回任何东西。
没有任何上传
在这个页面里、在你的机器上解码。编码过的网址经常带着工作阶段权杖和签章参数,把它贴进远端的 解码服务等于把那些一起交出去。