Handling Internationalized domain names (IDN)
echo Url::parse('https://www.пример.онлайн/hello/world')->toString();
Output
https://www.xn--e1afmkfd.xn--80asehdb/hello/world
Behind the curtains symfony/polyfill-intl-idn is used, so you don't need to have the internationalization PHP extension installed to parse internationalized domain names.
To check if a url contains an internationalized domain name you can use the
hasIdn
method:
Url::parse('https://www.example.com')->hasIdn(); // => false
Url::parse('https://www.müller.de')->hasIdn(); // => true
Url::parse('https://www.xn--m1adged4c3a.com')->hasIdn(); // => true