Відповідно до цієї відповіді тут : str='foo%20%5B12%5D'
encodes foo [12]
:
%20 is space
%5B is '['
and %5D is ']'
Це називається відсотковим кодуванням і використовується при кодуванні спеціальних символів у значеннях параметра url.
EDIT До речі, коли я читав 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, ']');
}
Сподіваємось, це допоможе людям розібратися у своїх проблемах, коли вони натрапляють на це питання.