我正在尝试编写一个 Java 类来登录某个网站。POST 请求中发送的登录数据为
user%5Blogin%5D=username&user%5Bpassword%5D=123456
我很好奇key user login*%5B中的and是什么意思。%5D *
%5B
%5D
我如何解码这些数据?
根据这里的答案: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 的一部分(例如主机)的内容时不进行编码,以下可能会有所帮助。
function fixedEncodeURI (str) { return encodeURI(str).replace(/%5B/g, '[').replace(/%5D/g, ']'); }
希望这将帮助人们在偶然发现这个问题时解决他们的问题。