Según esta respuesta aquí : str='foo%20%5B12%5D'
codifica foo [12]
:
%20 is space
%5B is '['
and %5D is ']'
Esto se denomina codificación porcentual y se utiliza para codificar caracteres especiales en los valores de los parámetros de URL.
EDITAR Por cierto, mientras leía https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/encodeURI#Description , se me ocurrió por qué tantas personas hacen la misma búsqueda. Vea la nota al final de la página:
También tenga en cuenta que si se desea seguir el RFC3986 más reciente
para las URL, reservar los corchetes (para IPv6) y, por lo tanto, no codificarlos al formar algo que podría ser parte de una URL (como un host), lo siguiente puede ayudar.
function fixedEncodeURI (str) {
return encodeURI(str).replace(/%5B/g, '[').replace(/%5D/g, ']');
}
Esperemos que esto ayude a las personas a resolver sus problemas cuando tropiecen con esta pregunta.