(PHP 4, PHP 5, PHP 7, PHP 8)
utf8_encode — Convertit une chaîne ISO-8859-1 en UTF-8
Avertissement
Cette fonction est OBSOLÈTE à partir de PHP 8.2.0.
Dépendre de cette fonction est fortement déconseillé.
Description
utf8_encode(string
$string
): string
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 Web ISO-8859-1
comme
Windows-1252
. Les caractéristiques supplémentaires
de Windows-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ères Windows-1252
correctement. Utilisez une fonction différente si une conversion
Windows-1252
est nécessaire.
Liste de paramètres
-
string
-
Une chaîne ISO-8859-1.
Valeurs de retour
Retour la version UTF-8 de string
.
Historique
Exemples
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
Notes
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
e282ac
D'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
Voir aussi
- utf8_decode() - Convertit une chaîne UTF-8 en ISO-8859-1, en remplaçant les caractères invalides ou non représentables.
- mb_convert_encoding() - Convertir une chaîne d'un codage de caractères à un autre
- uconverter::transcode() - Convertit une chaîne depuis un jeu de caractères vers un autre jeu de caractères
- iconv() - Convertit une chaîne de caractères à partir d'un encodage vers un autre