(PHP 4, PHP 5, PHP 7, PHP 8)
utf8_encode — Convertit une chaîne ISO-8859-1 en UTF-8
Cette fonction est OBSOLÈTE à partir de PHP 8.2.0. Dépendre de cette fonction est fortement déconseillé.
$string
): string
Cette fonction convertie la chaîne string
depuis
l'encodage ISO-8859-1
vers UTF-8
.
Note:
Cette fonction n'essaie pas de deviner l'encodage actuel de la chaîne de caractères fournie, elle suppose qu'elle est encodée en ISO-8859-1 (également connu sous le nom de "Latin 1") et la convertit en UTF-8. Puisque chaque séquence d'octets est une chaîne de caractères ISO-8859-1 valide, il n'y a jamais d'erreur, mais il n'en résultera pas une chaîne de caractères utile si un encodage différent était prévu.
De nombreuses pages Web marquées comme utilisant l'encodage de caratère
ISO-8859-1
utilisent effectivement un encodage similaire àWindows-1252
, et les navigateurs Web interpréterons les pages WebISO-8859-1
commeWindows-1252
. Les caractéristiques supplémentaires deWindows-1252
sont des caractères imprimables, tels que le signe euro (€
) et les guillemets bouclés (“
”
), à la place de certains caractères de contrôle de l'ISO-8859-1
. Cette fonction ne convertira pas ces caractèresWindows-1252
correctement. Utilisez une fonction différente si une conversionWindows-1252
est nécessaire.
string
Une chaîne ISO-8859-1.
Retour la version UTF-8 de string
.
Version | Description |
---|---|
8.2.0 | Cette fonction a été rendue obsolète. |
7.2.0 | Cette fonction a été déplacée dans le cœur de PHP, auparavant, il était nécessaire d'installer l'extension XML pour l'utiliser. |
Exemple #1 Exemple d'utilisation
<?php
// Convertit la chaîne 'Zoë' de ISO 8859-1 à UTF-8
$iso8859_1_string = "\x5A\x6F\xEB";
$utf8_string = utf8_encode($iso8859_1_string);
echo bin2hex($utf8_string), "\n";
?>
L'exemple ci-dessus va afficher :
5a6fc3ab
Note: Dépréciation et alternatives
Cette fonction est obsolète à partir de PHP 8.2.0 et sera supprimée dans une version future. Les utilisations existantes devraient être vérifiées et remplacées par des alternatives appropriées.
Une fonctionnalité similaire peut être obtenue avec mb_convert_encoding(), qui prend en charge ISO-8859-1 et de nombreux autres encodages de caractères.
<?php
$iso8859_1_string = "\xEB"; // 'ë' (e with diaeresis) in ISO-8859-1
$utf8_string = mb_convert_encoding($iso8859_1_string, 'UTF-8', 'ISO-8859-1');
echo bin2hex($utf8_string), "\n";
$iso8859_7_string = "\xEB"; // the same string in ISO-8859-7 represents 'λ' (Greek lower-case lambda)
$utf8_string = mb_convert_encoding($iso8859_7_string, 'UTF-8', 'ISO-8859-7');
echo bin2hex($utf8_string), "\n";
$windows_1252_string = "\x80"; // '€' (Euro sign) in Windows-1252, but not in ISO-8859-1
$utf8_string = mb_convert_encoding($windows_1252_string, 'UTF-8', 'Windows-1252');
echo bin2hex($utf8_string), "\n";
?>L'exemple ci-dessus va afficher :
c3ab cebb e282acD'autres options peuvent être disponibles en fonction des extensions installées, telles que UConverter::transcode() et iconv().
Les exemples suivants donnent tous le même résultat :
<?php
$iso8859_1_string = "\x5A\x6F\xEB"; // 'Zoë' in ISO-8859-1
$utf8_string = utf8_encode($iso8859_1_string);
echo bin2hex($utf8_string), "\n";
$utf8_string = mb_convert_encoding($iso8859_1_string, 'UTF-8', 'ISO-8859-1');
echo bin2hex($utf8_string), "\n";
$utf8_string = UConverter::transcode($iso8859_1_string, 'UTF8', 'ISO-8859-1');
echo bin2hex($utf8_string), "\n";
$utf8_string = iconv('ISO-8859-1', 'UTF-8', $iso8859_1_string);
echo bin2hex($utf8_string), "\n";
?>L'exemple ci-dessus va afficher :
5a6fc3ab 5a6fc3ab 5a6fc3ab 5a6fc3ab