https://github.com/Al-Muhandis/fp-idn/
Модуль реализует Punycode-кодирование и декодирование, полностью совместим с RFC 3492. Может использоваться не только для доменных имён в формате Unicode (IDN), но и в любых задачах, где нужно безопасно кодировать Unicode-строки в ASCII — например, для хранения, передачи или генерации URL-совместимых идентификаторов.
Пример:
- Код: Выделить всё
writeln(PunycodeEncode('пример')); // -> e1afmkfd
writeln(UnicodeToIDN('mail.пример.рф')); // -> mail.xn--e1afmkfd.xn--p1a
Также включены юнит тесты и бенчмарки производительности.
Буду рад отзывам, баг-репортам и предложениям по улучшению!
P.S. Поддерживает в том числе четырех-байтные кодовые точки в отличии от других реализаций (то есть покрывает все пространство, включая эмодзи, к примеру)