Qu'est-ce que l'encodage en pourcentage ?+−
L'encodage en pourcentage (aussi appelé encodage URL) remplace un caractère par % suivi de sa valeur hexadécimale à deux chiffres, répété pour chaque octet de sa représentation UTF-8. C'est ainsi qu'une URL peut transporter une espace (%20), une esperluette (%26) ou un emoji sans que ces caractères soient confondus avec la syntaxe propre de l'URL.
Quelle est la différence entre encodeURIComponent et encodeURI ?+−
encodeURIComponent échappe tout sauf un petit ensemble de caractères non réservés, ce qui en fait le bon choix pour une seule valeur - un paramètre de requête ou un segment de chemin - car il échappe aussi des caractères comme & et = qui seraient sinon lus comme faisant partie de la structure de l'URL. encodeURI est destiné à une URL entière : il laisse intacts les caractères structurels comme :, /, ?, & et # pour que l'URL continue de fonctionner, et n'échappe que les caractères qu'une URL ne peut vraiment pas contenir, comme les espaces. Faire passer une URL entière par encodeURIComponent la casse, puisque cela échapperait aussi les barres obliques et les deux-points.
Dois-je encore utiliser escape() et unescape() ?+−
Non. Les deux ont été dépréciées dès la toute première édition du standard JavaScript qui a également introduit encodeURIComponent, car escape() n'encode pas les caractères non-ASCII de la façon attendue par HTTP et les URL modernes - elle utilise pour tout ce qui dépasse Latin-1 une forme non standard %uXXXX que decodeURIComponent ne peut pas relire. Cet outil ne conserve cette option que pour vous permettre d'inspecter ce qu'un système ancien a produit.
Pourquoi un + dans une chaîne de requête devient-il une espace ?+−
Les chaînes de requête proviennent historiquement des soumissions de formulaires HTML, qui utilisent le format application/x-www-form-urlencoded : il encode une véritable espace par + plutôt que par %20, et l'analyseur de cet outil (ainsi que URLSearchParams de JavaScript) traitent les deux comme une espace au décodage. Si une valeur a réellement besoin d'un signe plus littéral, il doit lui-même être encodé en pourcentage sous la forme %2B.
Que se passe-t-il avec un paramètre répété comme ?tag=a&tag=b ?+−
Rien n'est perdu - cet outil conserve chaque occurrence, dans l'ordre, comme sa propre ligne dans le tableau des paramètres de requête, exactement comme la plupart des frameworks serveur regroupent une clé répétée en une liste. Modifier ou supprimer une ligne laisse les autres intactes.
Pourquoi l'analyseur a-t-il supposé https:// pour mon URL ?+−
Une chaîne comme example.com/chemin n'a pas de protocole, donc ni un navigateur ni cet outil ne peuvent savoir s'il s'agit d'une adresse web, d'un autre protocole, ou simplement de texte brut. Plutôt que de la rejeter, l'analyseur suppose https:// afin que vous puissiez tout de même l'inspecter et la modifier - un indice apparaît chaque fois que cela se produit, et vous pouvez corriger le champ Protocole si un autre schéma était prévu.