POST 请求中的 %5B 和 %5D 代表什么?

2022-08-31 04:50:44

我正在尝试编写一个Java类来登录某个网站。POST 登录请求中发送的数据为

user%5Blogin%5D=username&user%5Bpassword%5D=123456

我很好奇密钥用户登录中的和是什么意思。%5B%5D

如何解码这些数据?


答案 1

根据这里的答案:编码: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 时,我突然想到为什么这么多人进行相同的搜索。请参阅页面底部的注释:

另请注意,如果希望遵循URL的最新RFC3986,则保留方括号(对于IPv6),因此在形成可能成为URL一部分的东西(例如主机)时未进行编码,则以下可能会有所帮助。

function fixedEncodeURI (str) {
    return encodeURI(str).replace(/%5B/g, '[').replace(/%5D/g, ']');
}

希望这将有助于人们在偶然发现这个问题时解决问题。


答案 2

它们表示 和 。这种编码称为“URL 编码”。[]