Convert domain name from IDNA ASCII to Unicode

- « idn_to_ascii

- IntlChar »

- PHP Manual
- IDN Functions
- Convert domain name from IDNA ASCII to Unicode

# idn_to_utf8

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.2, PECL idn >= 0.1)

idn_to_utf8 — Convert domain name from IDNA ASCII to Unicode

### Description

Procedural style

idn_to_utf8(
string `$domain`,
int `$flags` = `IDNA_DEFAULT`,
int `$variant` = `INTL_IDNA_VARIANT_UTS46`,
array `&$idna_info` = `null`
): string|false

This function converts a Unicode domain name from an IDNA ASCII-compatible format to plain Unicode, encoded in UTF-8.

### Parameters

`domain`

  Domain to convert in an IDNA ASCII-compatible format.

`flags`

  Conversion options - combination of IDNA_* constants (except IDNA_ERROR_* constants).

`variant`

  Either `INTL_IDNA_VARIANT_2003` (deprecated as of PHP 7.2.0) for IDNA 2003 or `INTL_IDNA_VARIANT_UTS46` (only available as of ICU 4.6) for UTS #46.

`idna_info`

  This parameter can be used only if `INTL_IDNA_VARIANT_UTS46` was used for `variant`. In that case, it will be filled with an array with the keys `'result'`, the possibly illegal result of the transformation, `'isTransitionalDifferent'`, a boolean indicating whether the usage of the transitional mechanisms of UTS #46 either has or would have changed the result and `'errors'`, which is an int representing a bitset of the error constants IDNA_ERROR_*.

### Return Values

The domain name in Unicode, encoded in UTF-8, or `false` on failure

### Changelog

Version | Description
--- | ---
7.4.0 | The default value of `variant` is now `INTL_IDNA_VARIANT_UTS46` instead of the deprecated `INTL_IDNA_VARIANT_2003`.
7.2.0 | `INTL_IDNA_VARIANT_2003` has been deprecated; use `INTL_IDNA_VARIANT_UTS46` instead.

### Examples

Example #1 idn_to_utf8() example

    <?phpecho idn_to_utf8('xn--tst-qla.de'); ?>

The above example will output:

    täst.de

### See Also

- idn_to_ascii() - Convert domain name to IDNA ASCII form