(PECL idn >= 0.1)
idn_to_utf8 — Convertit un nom de domaine ASCII en UTF-8
idn_to_utf8() convertit un nom de domaine ASCII en une version originale UTF-8.
Le nom de domaine en ASCII. Il ressemble à "xn--..." s'il contient des caractères non ASCII.
Recevra le code d'erreur IDNA.
La version UTF-8 du nom de domaine, ou bien FALSE en cas d'erreur. La RFC 3490 4.2 indique que même si "ToUnicode n'échoue jamais. Si une étape échoue, alors la séquence initiale est retournée immédiatement à cette étape.".
Si une erreur survient, FALSE est retourné, et un code d'erreur optionnel est activé. De plus, une alerte E_WARNING est affichée.
Exemple #1 Exemple avec idn_to_utf8()
Un exemple simple puis un exemple compliqué, qui montre comment intercepter les erreurs (ce qui ne devrait jamais arriver, selon la RFC).
<?php
// convertit peut-être le résultat de ISO-8859-1 avec utf8_decode()
echo idn_to_utf8("xn--tst-qla.de");
// Cela ne devrait jamais arriver, mais essayons quand même....
$utf8 = idn_to_utf8("xn--tst-qla.de", $errorcode);
if ($utf8 === false) {
printf("Erreur détectée %d: %s\n", $errorcode, idn_strerror($errorcode));
}
?>
L'exemple ci-dessus va afficher quelque chose de similaire à :
täst.de