Maison >Java >javaDidacticiel >Pourquoi URLEncoder code-t-il les espaces comme « » au lieu de « » ?

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

DDD
DDDoriginal
2024-11-11 06:47:02838parcourir

Why Does URLEncoder Encode Spaces as ' ' Instead of ' '?

L'énigme d'URLEncoder : Comprendre le codage des caractères spatiaux

Lorsque vous essayez d'encoder une chaîne à l'aide d'URLEncoder, vous pouvez rencontrer un comportement inattendu où les espaces sont convertis en symboles « » au lieu de le code hexadécimal « » attendu.

Cause

La classe URLEncoder adhère aux spécifications HTML pour l'encodage des URL dans les formulaires HTML. Selon ces spécifications, les espaces doivent être remplacés par des symboles « » pour les paramètres au format MIME application/x-www-form-urlencoded.

Solution

Pour obtenir l'encodage souhaité lorsque les espaces sont convertis à ' ', vous pouvez effectuer les étapes suivantes :

String encodedString = java.net.URLEncoder.encode("Hello World", "UTF-8");
encodedString = encodedString.replace("+", "%20");

Cela remplacera tous les symboles ' ' par ' , ce qui entraînera un encodage correct selon vos attentes.

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!

Déclaration:
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