Изначально стандартом Системы Доменных Имен (DNS) была разрешена регистрация доменов, содержащих только символы в кодировке ASCII — 26 букв латинского алфавита (a-z), цифры (0-9) и символ дефиса (всего 37 символов).
Однако с ростом количества пользователей, языки которых основаны на алфавитах отличающихся от латинского, было решено ввести регистрацию доменов в кодировке Unicode, которая включает символы всех национальных алфавитов. В результате этого решения появились многоязычные доменные имена — Internationalized Domain Names (IDN-домены).
Punycode — это стандартизированный метод преобразования символов, относящихся к стандарту Unicode, в формат ASCII, поддерживаемый инфраструктурой DNS. Чтобы IDN-домен после преобразования нельзя было спутать с обычным доменом, все IDN-домены начинаются со специального префикса «XN–». Например, домен «домен.com.ua» в формате punycode будет выглядеть следующим образом — xn--d1acufc.com.ua.
Преобразование домена в Punycode и обратно производится на стороне браузера, поэтому при введении в адресную строку IDN-домена браузер сам конвертирует введенное значение для взаимодействия с DNS.