Ответ Питера дает вам официальные функции IDN в PHP 5.2, и, если возможно, это, вероятно, лучший ответ.
Однако некоторые пользователи не смогут установить библиотеку PECL в своей системе PHP, поэтому им потребуетсяиметь библиотеку преобразования, написанную на простом PHP, которую они могут просто включить в свой собственный код.
К счастью, есть решение: http://phlymail.com/en/downloads/idna/
Это класс PHP, который позволяет вам кодироватьи декодировать между Unicode и Punycode.Очень прост в использовании и не требует какой-либо установки (кроме загрузки и включения в ваш собственный код PHP).
Очевидно, что вам это не нужно, если вы используете PHP 5.3 или выше, илиесли вы можете установить библиотеку PECL в PHP 5.2, но если вы не можете этого сделать, это хорошая альтернатива.