Это не официальный сайт wikipedia.org 01.01.2023

Punycode — Википедия

Punycode

(перенаправлено с «Паникод»)

Punycode ([ˈpjuːniˌkəʊd]), также паникод — стандартизированный метод преобразования последовательностей Unicode-символов в так называемые ACE-последовательности (англ. ASCII Compatible Encoding «кодировка, совместимая с ASCII»[1]), которые состоят только из алфавитно-цифровых символов, как это разрешено в доменных именах.

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

Причины использованияПравить

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

Правила преобразованияПравить

В качестве базисных символов выступают символы латинского алфавита a–z (без различия между прописными и строчными буквами), цифры от 0 до 9 и дефис «-»; всего 37 символов. Алгоритм преобразования состоит из двух этапов. На первом этапе из исходного текста выбираются все символы, входящие в основную кодировку ASCII (коды 0−127), и переносятся подряд в закодированное слово. После этого, если в тексте встретились не ASCII-символы, к закодированному слову добавляется дефис, и далее преобразование идёт по процедуре, описанной в RFC 3492[3].

Примеры
последовательность символов кодировка
abcdef abcdef
abæcdöef abcdef-qua4k
schön schn-7qa
ยจฆฟคฏข 22cdfh1b8fsa
74h
правда 80aafi6cg
台湾 xn--kprw13d

См. такжеПравить

ПримечанияПравить

  1. Paul Hoffman. RACE: Row-based ASCII Compatible Encoding for IDN (англ.). tools.ietf.org (16 октября 2000). Дата обращения: 13 марта 2020. Архивировано 21 июня 2020 года.
  2. Результаты проведённого компанией REG.RU тестирования работы браузеров с доменом .РФ  (рус.). REG.RU (30 июня 2010). Дата обращения: 30 сентября 2010. Архивировано из оригинала 22 августа 2010 года.
  3. Adam M. Costello. Punycode: A Bootstring encoding of Unicode for Internationalized Domain Names in Applications (IDNA) (англ.). tools.ietf.org (март 2003). Дата обращения: 13 марта 2020. Архивировано 10 августа 2020 года.

СсылкиПравить