Maison > Java > javaDidacticiel > le corps du texte

Pourquoi « URLEncoder » encode-t-il les espaces comme « » au lieu de « » ?

Mary-Kate Olsen
Libérer: 2024-11-11 16:35:03
original
1036 Les gens l'ont consulté

Why Does `URLEncoder` Encode Spaces as

Différences entre URLEncoder et l'encodage d'URL de formulaire HTML

En essayant d'encoder une chaîne contenant un caractère d'espace à l'aide de java.net.URLEncoder, vous peut remarquer un résultat inattendu. La sortie ne suit pas le format « Hello World » attendu, mais renvoie plutôt « Hello World ». Cela découle de la nuance entre le comportement d'URLEncoder et l'encodage d'URL de formulaire HTML.

L'URLEncoder fonctionne selon la spécification HTML pour l'encodage d'URL dans des formulaires HTML. Conformément à la spécification HTML, les noms et valeurs de contrôle doivent échapper aux caractères d'espace, non pas avec " , " mais avec le symbole " ".

Cependant, votre exigence peut être de coder un caractère d'espace spécifiquement comme " ." Pour y parvenir, une simple opération de remplacement peut être effectuée sur la chaîne encodée :

String encodedString = java.net.URLEncoder.encode("Hello World", "UTF-8");
String correctedString = encodedString.replace("+", "%20");
Copier après la connexion

Cette correction remplace le symbole " " par " ", ce qui donne le format "Hello World" souhaité.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal