A-метки и U-метки в доменных именах
Доменные имена, где используются символы не из набора ASCII, называют
интернационализированными доменными именами (IDN-доменами).
Интернационализированная часть доменного имени может присутствовать в любой
метке, не только в TLD.
Поскольку в самой DNS ранее использовался только ASCII, пришлось создать
алгоритм преобразования кодировки Unicode в кодировку ASCII, чтобы представить
символы Unicode, не входящие в
набор ASCII, в виде строк ASCII. Алгоритм преобразования Unicode в ASCII
называется Punycode, а получающиеся в результате его работы строки называются A-метками.
A-метку можно отличить от обычной метки ASCII, поскольку она всегда начинается со
следующих четырех символов: xn-- Эти символы называются префиксом ACE (ASCII Compatible Encoding.).
Punycode — обратимое преобразование: можно преобразовать строку Unicode в метку
A-label и снова преобразовать метку A-label в строку символов Unicode (которая
называется U-меткой).
Алгоритм Punycode, как правило, используется только для представления
интернационализированных доменов. Хотя гипотетически можно кодировать другие
строки UTF-8, используя Punycode, это нестандартный подход, не обеспечивающий
взаимодействие с другими системами.
Примеры (вымышленных) IDN-доменов
Вариант U-метки | Вариант A-метки |
example.みんな | example.xn--q9jyb4c | 大坂.info | xn--uesx7b.info |