A-метки и U-метки в доменных именах

Доменные имена, где используются символы не из набора ASCII, называют интернационализированными доменными именами (IDN-доменами). Интернационализированная часть доменного имени может присутствовать в любой метке, не только в TLD.

Поскольку в самой DNS ранее использовался только ASCII, пришлось создать дополнительную кодировку, чтобы представить символы Unicode, не входящие в набор ASCII, в виде строк ASCII. Алгоритм преобразования Unicode в ASCII называется Punycode, а получающиеся в результате его работы строки называются A-метками. A-метку можно отличить от обычной метки ASCII, поскольку она всегда начинается со следующих четырех символов: xn-- Эти символы называются префиксом ACE.

Punycode — обратимое преобразование: можно преобразовать строку Unicode в метку A-label и снова преобразовать метку A-label в строку символов Unicode (которая называется U-меткой).

Алгоритм Punycode, как правило, используется только для представления интернационализированных доменов. Хотя гипотетически можно кодировать другие строки UTF-8, используя Punycode, это нестандартный подход, не обеспечивающий взаимодействие с другими системами.

Примеры (вымышленных) IDN-доменов

Вариант U-метки Вариант A-метки
example.みんな example.xn--q9jyb4c
大坂.info xn--uesx7b.info みんな.大坂 xn--q9jyb4c.xn--uesx7b