Maison >développement back-end >tutoriel php >Comment décoder les URL codées en UTF-8 au-delà de urldecode() en PHP ?

Comment décoder les URL codées en UTF-8 au-delà de urldecode() en PHP ?

Susan Sarandon
Susan Sarandonoriginal
2024-10-17 15:08:02291parcourir

How to Decode UTF-8 Encoded URLs Beyond urldecode() in PHP?

Décodage d'URL en PHP : au-delà de urldecode()

La fonction urldecode() de PHP est un outil précieux pour décoder les chaînes codées en URL. Cependant, il peut échouer lorsque la chaîne est également codée en UTF-8.

Le problème :

Considérez la chaîne codée en URL suivante :

Ant%C3%B4nio+Carlos+Jobim

Tenter de le décoder à l'aide de urldecode() donne le résultat suivant :

Antônio Carlos Jobim

Au lieu du "Antônio Carlos Jobim" attendu.

La solution :

Pour résoudre ce problème, nous devons également décoder l'encodage UTF-8. La fonction utf8_decode() de PHP sert à cet effet :

echo utf8_decode(urldecode("Ant%C3%B4nio+Carlos+Jobim"));

Cela affichera la chaîne correcte :

Antônio Carlos Jobim

Explication :

Encodage d'URL consiste à remplacer certains caractères par leurs homologues hexadécimaux. Le codage UTF-8, en revanche, représente des caractères utilisant plusieurs octets, qui peuvent être interprétés à tort comme des codes hexadécimaux. En combinant utf8_decode() et urldecode(), nous pouvons décoder correctement les chaînes qui ont été codées aux formats UTF-8 et URL.

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