utf8_decode()
La fonction utf8_decode() est une fonction intégrée de PHP qui convertit une chaîne de caractères encodée en UTF-8 vers l'encodage ISO-8859-1. UTF-8 est un format d'encodage de caractères populaire qui prend en charge tous les caractères Unicode, tandis qu'ISO-8859-1 est un format d'encodage standard qui ne prend en charge qu'un ensemble limité de caractères.
Remarque : utf8_decode() est dépréciée depuis PHP 8.2. Pour les applications modernes, utilisez plutôt mb_convert_encoding($string, 'ISO-8859-1', 'UTF-8').
Cette fonction est utile lorsque vous disposez de texte encodé en UTF-8 qui doit être affiché ou utilisé dans un système ne prenant en charge que l'encodage ISO-8859-1. En utilisant utf8_decode(), vous pouvez convertir le texte vers l'encodage ISO-8859-1 et vous assurer qu'il est affiché ou utilisé correctement.
Syntaxe
La syntaxe de la fonction utf8_decode() est la suivante :
Décoder une chaîne UTF-8 en PHP
utf8_decode($string)Où $string est la chaîne de caractères encodée en UTF-8 que vous souhaitez convertir vers l'encodage ISO-8859-1.
Exemples d'utilisation
Examinons quelques exemples pratiques d'utilisation de utf8_decode() en PHP.
Exemple 1 : Conversion de texte encodé en UTF-8 vers ISO-8859-1
Supposons que vous ayez une chaîne de caractères encodée en UTF-8 que vous souhaitez convertir vers l'encodage ISO-8859-1. Vous pouvez utiliser la fonction utf8_decode() pour cela, comme suit :
Conversion de texte encodé en UTF-8 vers ISO-8859-1 en PHP
<?php
$text = "Zoë";
$iso_text = utf8_decode($text);
echo bin2hex($iso_text);
?>Ce code définit une variable de chaîne $text contenant du texte encodé en UTF-8. Il utilise ensuite la fonction utf8_decode() pour convertir le texte vers l'encodage ISO-8859-1, et stocke le résultat dans $iso_text. Enfin, il affiche la représentation hexadécimale du texte encodé en ISO-8859-1.
Valeur de retour et séquences invalides : La fonction retourne la chaîne convertie, ou false en cas d'échec. Si l'entrée contient des séquences UTF-8 invalides, elles sont remplacées par un point d'interrogation (?).
Exemple 2 : Conversion de texte encodé en UTF-8 provenant d'un fichier XML
Supposons que vous ayez un fichier XML contenant du texte encodé en UTF-8 que vous souhaitez lire et convertir vers l'encodage ISO-8859-1. Vous pouvez utiliser la bibliothèque SimpleXML de PHP pour lire le fichier XML et la fonction utf8_decode() pour convertir le texte, comme suit :
Conversion de texte encodé en UTF-8 provenant d'un fichier XML en PHP
$xml = simplexml_load_file("data.xml");
foreach ($xml->item as $item) {
$title = utf8_decode($item->title);
$description = utf8_decode($item->description);
echo "$title: $description\n";
}Ce code charge un fichier XML data.xml à l'aide de la fonction simplexml_load_file(), et itère sur chaque <code><item></code> élément à l'aide d'une boucle foreach. À l'intérieur de la boucle, il utilise la fonction utf8_decode() pour convertir le texte encodé en UTF-8 des éléments <code><title></code> et <code><description></code> vers l'encodage ISO-8859-1, et stocke les résultats dans deux nouvelles variables $title et $description. Enfin, il affiche le texte encodé en ISO-8859-1 dans la console.
Pour que cet exemple fonctionne, data.xml doit contenir une structure similaire à celle-ci :
<root>
<item>
<title>Example Title</title>
<description>Example Description</description>
</item>
</root>Conclusion
Dans cet article, nous avons discuté de la fonction utf8_decode() de PHP et de la manière dont elle peut être utilisée pour convertir du texte encodé en UTF-8 en texte encodé en ISO-8859-1. Nous avons expliqué ce que fait la fonction, sa syntaxe, et fourni des exemples de son utilisation dans des scénarios pratiques. En suivant ces exemples, vous pouvez facilement utiliser utf8_decode() pour convertir du texte encodé en UTF-8 vers l'encodage ISO-8859-1 et vous assurer que votre texte est affiché ou utilisé correctement dans votre système.
Pratique
Que fait la fonction utf8_decode en PHP ?