Punycode

Материал из свободной русской энциклопедии «Традиция»
Перейти к навигации Перейти к поиску

Punycode (произносится как «пуникод» или «пьюникод») — стандартизированный метод преобразования последовательностей Unicode-символов в так называемые ACE-последовательности, которые состоят только из алфавитно-цифровых символов, как это разрешено в доменных именах. Punycode был разработан для однозначного преобразования доменных имен в последовательность ASCII-символов.

Мотивация[править | править код]

Важнейшей причиной введения Punycode был тот факт, что в утверждённой стандартом системе доменных имен разрешены только 26 символов латинского алфавита, цифры от 0 до 9 и дефис. Для английского и некоторых других языков с латинским алфавитом этого достаточно, однако другие языки, в том числе и с латинским алфавитом, содержат дополнительные символы, например, ä, ö или ü.

Правила преобразования[править | править код]

В качестве базисных символов выступают символы латинского алфавита от a до z (без различия между прописными и строчными буквами), цифры от 0 до 9 и дефис «-»; всего 37 символов.

Примеры
Последовательность символов Кодировка
abcdef abcdef
abæcdöef abcdef-qua4k
schön schn-7qa
ยจฆฟคฏข 22cdfh1b8fsa
74h
правда 80aafi6cg
почемужеонинеговорятпорусски (пример из RFC 3492) b1abfaaepdrnnbgefbaDotcwatmq2g4l

Браузеры с поддержкой Punycode[править | править код]

Поддержка кириллических доменов[править | править код]

Punycode-конвертеры[править | править код]

Существуют также специальные программы или сервисы, называемые Punycode-конвертерами, позволяющие осуществлять кодирование/декодирование последовательности Unicode-символов в ACE и наоборот.

Примечания[править | править код]

Ссылки[править | править код]

  • RFC 3492 — Punycode: A Bootstring encoding of Unicode for Internationalized Domain Names in Applications (IDNA)