Домен .рф в Punycode
Для настройки DNS, сервера или сертификата нужна запись из латиницы. Домен пример.рф превращается в xn--e1afmkfd.xn--p1ai: каждая часть между точками кодируется отдельно, а xn-- показывает, что дальше идёт закодированное имя. Зона .рф — это xn--p1ai.
пример.рф
Ссылка и email: меняется только хост
Если вставить ссылку или адрес почты, пути и параметры останутся как есть, а хост будет переведён. Ссылка https://пример.рф/путь?a=1 станет https://xn--e1afmkfd.xn--p1ai/путь?a=1, а в адресе иван@пример.рф кодируется только часть после знака @.
https://пример.рф/путь?a=1
иван@пример.рф
Список доменов в обе стороны
Вставьте несколько доменов столбцом: каждый получит свою строку в результате. Так же и обратно: xn--80asehdb превратится в «онлайн», xn--h1alffa9f.xn--p1ai в россия.рф.
россия.рф
почта.рф
xn--80adxhks
Система доменных имён исторически хранит только латиницу, цифры и дефис. Чтобы в адресе можно было писать на других языках, придумали IDN, интернационализированные доменные имена. Каждая часть такого имени между точками (label) преобразуется в ASCII по алгоритму Punycode, который описан в RFC 3492, и получает префикс xn--. Правила для самих имён называются IDNA (RFC 5890–5894), а пошаговое соответствие, которому следуют браузеры, — UTS 46.
Для пользователя домен пример.рф и xn--e1afmkfd.xn--p1ai — один и тот же адрес. Браузер показывает первый вариант, а по сети уходит второй. Но в конфигурации веб-сервера, в записях DNS, в сертификатах и во многих API нужно писать именно вариант с xn--.
Сам алгоритм не просто транслитерирует буквы: он записывает ASCII-символы имени, а затем в сжатом виде добавляет позиции и коды остальных букв. Поэтому вручную переводить домены неудобно, а по результату, например xn--80asehdb, нельзя угадать слово.
Вставьте домен в поле, и результат появится сразу. Каждая часть переводится отдельно, поэтому «Москва.рф» превратится в xn--80adxhks.xn--p1ai: прописные буквы приводятся к строчным, как это делают браузеры. Буква «ё» остаётся «ё» и не заменяется на «е», это разные буквы.
Если домен состоит только из латиницы, например example.com, он остаётся как есть. Если часть смешанная, как bücher.de, перевод получится вроде xn--bcher-kva.de: ASCII-часть осталась в начале, а закодированная идёт после дефиса.
Переводится только имя хоста. Протокол, порт, путь, параметры и якорь в ссылках остаются без изменений. В email меняется только часть домена после @: правила для части до @ другие, и этот инструмент её не трогает.
Обратное направление нужно, когда вы видите в логе, письме или настройках что-то вроде xn--e1afmkfd.xn--p1ai и хотите понять, что это за домен. Вставьте строку, и получите читаемое имя. Если часть имени не начинается с xn--, она остаётся как есть. Если после xn-- стоит не корректная запись Punycode, мы покажем ошибку и место, где она найдена.
Часто домен приходится проверять на подозрительные признаки. Мошенники регистрируют домены, где латинские буквы заменены похожими на них буквами других алфавитов, и браузеры в таких случаях показывают адрес как xn--…, чтобы не обманывать. Перевод из Punycode позволяет увидеть настоящие символы.
Перевод — это Punycode по RFC 3492 плюс два шага: буквы приводятся к нижнему регистру и к нормальной форме Unicode (NFC). Полной таблицы соответствий IDNA (UTS 46) мы не применяем: например, лигатуру fi браузер заменяет по ней на fi, а здесь она остаётся как есть. Недопустимые в имени хоста символы, например пробел или подчёркивание, мы не пропустим: в имени могут быть буквы, цифры и дефис не по краям части, а ошибка покажет сам символ и его позицию в строке.
У доменных имён есть ограничения длины: одна часть, то есть label, может быть не длиннее 63 символов, а всё имя целиком — 253. Эти пределы считаются в виде Punycode, поэтому длинное русское слово иногда не помещается: при записи в xn-- оно занимает больше места, чем в кириллице. Мы проверяем длину только у частей с xn--, которые переводим в кириллицу: слишком длинную часть покажем как ошибку. Длину при переводе в Punycode и общую длину имени не проверяем, это нужно сделать у регистратора.
Список доменов можно скопировать целиком кнопкой «Копировать всё» или построчно. Так удобно подготовить перечень для настройки DNS, списка зеркал или заявки регистратору.
Как перевести кириллический домен в Punycode
Вставьте домен в поле «Исходный». Если в строке русские буквы, включится направление «В Punycode», и справа появится вариант с xn--. Например, пример.рф станет xn--e1afmkfd.xn--p1ai.
Что такое xn--p1ai
Это домен верхнего уровня .рф в записи Punycode. Любой домен в зоне .рф в DNS записан с этим окончанием.
Зачем нужен Punycode, если браузер показывает кириллицу
DNS, сертификаты, конфигурации серверов и многие API принимают только ASCII. Браузер переводит адрес сам, а в настройках его нужно записывать вручную в виде xn--.
Можно ли перевести список доменов сразу
Да, вставьте их по одному на строку. Результат будет списком «было → стало», его можно скопировать целиком.
Почему не получается перевести домен с подчёркиванием или пробелом
Такие символы нельзя использовать в имени хоста: допустимы буквы, цифры и дефис. Мы покажем, какой символ мешает и в какой он позиции.
Переводится ли часть email до @
Нет, только домен после @. Перевод части до @ устроен иначе, и этот инструмент её не меняет.
Куда уходят мои данные
Никуда. Всё обрабатывается в браузере, а запросы на чужие адреса запрещены заголовком безопасности. Сайт загружает только свои страницы и файлы — это легко проверить во вкладке «Сеть» в инструментах разработчика.