Selon cette réponse sur ici : str='foo%20%5B12%5D'
encode foo [12]
:
%20 is space
%22 is quotes
%5B is '['
and %5D is ']'
C'est ce qu'on appelle codage en pourcentage et est utilisé pour encoder les caractères spéciaux dans les valeurs des paramètres url.
EDIT Au fait, pendant que je lisais https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/encodeURI#Description je me suis demandé pourquoi tant de gens font la même recherche. Voir la note au bas de la page :
Notez également que si l'on souhaite suivre le plus récent RFC3986 pour les URL, rendant les crochets réservés (pour l'IPv6) et donc non encodés lorsqu'ils forment quelque chose qui pourrait faire partie d'une URL (comme un hôte), ce qui suit peut être utile.
function fixedEncodeURI (str) {
return encodeURI(str).replace(/%5B/g, '[').replace(/%5D/g, ']');
}
J'espère que cela aidera les gens à résoudre leurs problèmes lorsqu'ils se heurtent à cette question.