Punycode — способ кодирования, который представляет доменные метки с символами Unicode в виде обычного ASCII. Например, café.com превращается в xn--caf-dma.com, что позволяет интернационализированным именам (IDN) работать в DNS.
Система DNS исторически понимает только буквы латиницы, цифры и дефис. Чтобы домены на кириллице, китайском или с диакритикой работали, браузер переводит каждую метку в ASCII-форму с префиксом xn-- перед отправкой запроса. В адресной строке и в URL пользователь видит привычный текст, а по сети уходит его Punycode-версия.
Несколько особенностей кодирования:
Так поддержка национальных алфавитов появляется без переделки DNS, и домены остаются доступны из любого браузера.