Вроде очевидно, что в ядре такое должно быть, но вот как-то и не очевидно.
В общем, работа с Punycode довольно проста:
$converter = CBXPunycode::GetConverter();
echo $converter->Encode('www.ненавижукириллическиедомены.com');
результат: www.xn--80aegbcaberbaabxenaycbrt0b3a5b1h8e.com |
Полный набор класса, если кому потребуется:
http://bxapi.ru/?search=CBXPunycode