(PECL idn >= 0.1)
idn_to_utf8 — Convert ASCII encoded domain name to UTF-8
This function converts a ASCII encoded domain name to its original UTF-8 version.
The ASCII encoded domain name. Looks like "xn--..." if the it originally contained non-ASCII characters.
Will be set to the IDNA error code.
The UTF-8 encoded version of the domain name or FALSE in case of an error. RFC 3490 4.2 states though "ToUnicode never fails. If any step fails, then the original input sequence is returned immediately in that step."
If an error occurs FALSE is returned and the optional errorcode is set. In addition a E_WARNING message is printed.
Example #1 idn_to_utf8() example
First a simple example and then one explaining how to catch errors (which should never happen according to the RFC).
<?php
// maybe convert the result to ISO-8859-1 using utf8_decode()
echo idn_to_utf8("xn--tst-qla.de");
// Should never happen but to be sure...
$utf8 = idn_to_utf8("xn--tst-qla.de", $errorcode);
if ($utf8 === false) {
printf("Detected error %d: %s\n", $errorcode, idn_strerror($errorcode));
}
?>
上例的输出类似于:
t?st.de