Les profils partagent les échappements UTF-8 mais n’écrivent pas toutes les valeurs de la même façon. RFC 3986 conserve lettres, chiffres, tiret, point, soulignement et tilde. Le formulaire conserve aussi l’astérisque et donne à l’espace l’écriture spéciale plus.

%20 et + dépendent du profil

Un composant RFC encode l’espace avec %20 et un plus littéral avec %2B. Le formulaire écrit l’espace avec + et protège aussi un plus littéral par %2B. Le décodeur doit donc connaître le profil pour interpréter un plus brut ; URLCodec ne devine jamais.

Un composant n’est pas une URL entière

Les séparateurs barre, point d’interrogation, &, égal et dièse structurent une URL entière, mais deviennent des données dans un composant et sont échappés. URLCodec n’a volontairement aucun mode URL entière : il impose d’identifier la frontière avant de transformer.

Contrôlez le composant destinataire

L’encodage en pour cent dépend du contexte. URLCodec transforme volontairement une valeur et n’analyse pas une URL entière, ne sépare pas les paires de requête, ne normalise pas un chemin, ne valide pas une destination et ne décide pas si un système attend les règles de formulaire. Collez le résultat uniquement dans le composant dont vous avez vérifié le contrat. Encoder change la représentation ; cela ne chiffre, n’authentifie, ne nettoie ni ne sécurise une destination.