我试图写一个Java类登录到某个网站。在POST请求中发送的登录数据为
user%5Blogin%5D=username&user%5Bpassword%5D=123456
我很好奇%5B和%5D在键用户登录中意味着什么。
%5B
%5D
如何解码这些数据?
它们表示[和]。这种编码称为“URL编码”。
[
]
这是通常的url编码
所以它们分别代表[和]
根据这个对在这里的回答:str='foo%20%5B12%5D'编码foo [12]:
str='foo%20%5B12%5D'
foo [12]
%20 is space %22 is quotes %5B is '[' and %5D is ']'
它被称为百分比编码,用于对url参数值中的特殊字符进行编码。
顺便说一下,当我读https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/encodeURI#Description时,我突然想到为什么这么多人做同样的搜索。请看页面底部的说明:
还请注意,如果有人希望遵循最新的RFC3986 对于URL,使方括号保留(IPv6),因此不是 编码时,形成的东西可能是URL的一部分(如 . Host),以下内容可能会有所帮助
还请注意,如果有人希望遵循最新的RFC3986 对于URL,使方括号保留(IPv6),因此不是 编码时,形成的东西可能是URL的一部分(如
function fixedEncodeURI (str) { return encodeURI(str).replace(/%5B/g, '[').replace(/%5D/g, ']'); }
希望这能帮助人们在遇到这个问题时解决他们的问题。
在URL编码时,[]被%5B%5D取代。
[]
%5B%5D
这些数据可能最初是从一个看起来有点像这样的web表单发布的(但可能要复杂得多):
<form action="http://example.com" method="post"> User login <input name="user[login]" /><br /> User password <input name="user[password]" /><br /> <input type="submit" /> </form>
如果方法是“get”而不是“post”,点击提交按钮会把你带到一个看起来有点像这样的URL:
http://example.com/?user%5Blogin%5D=username&user%5Bpassword%5D=123456
或者:
http://example.com/?user[login]=username&user[password]=123456
另一端的web服务器可能会接受user[login]和user[password]参数,并将它们转换为包含这些值的login和password字段的user对象。
user[login]
user[password]
login
password
user
简单看一下,你可以使用这个在线工具进行百分比/解码。
parse_str('foo[]=1&foo[]=2&foo[]=3', $bar);
上述结果产生:
$bar = ['foo' => ['1', '2', '3'] ];
以及在数组中分离查询变量的方法是什么(至少在php中)。
要找出这些值,只需在浏览器中使用Console并执行以下操作
console.log(decodeURI('user%5Blogin%5D=username&user%5Bpassword%5D=123456'))