Punycode
Punycode ([ˈpjuːniˌkəʊd]), также паникод, пюникод[1] или пьюникод[2][3] — стандартизированный метод преобразования последовательностей Unicode-символов в так называемые ACE-последовательности (англ. ASCII-compatible encoding — кодировка, совместимая с ASCII[4]), которые состоят только из алфавитно-цифровых символов, как это разрешено в доменных именах.
Punycode был разработан для однозначного преобразования доменных имен в последовательность ASCII-символов. Используется в большинстве браузеров[5]. Существуют также специальные программы или сервисы, называемые Punycode-конвертерами, позволяющие осуществлять кодирование/декодирование последовательности Unicode-символов в ACE и наоборот.
Причины использования
[править | править код]Важнейшей причиной введения Punycode был тот факт, что в утверждённой стандартом системе доменных имен разрешены только 26 символов латинского алфавита, цифры от 0 до 9 и дефис. Для английского и некоторых других языков на основе латинского алфавита этого достаточно, однако другие языки могут содержать дополнительные символы, например, ä, ö или ü.
Правила преобразования
[править | править код]В качестве базисных символов выступают символы латинского алфавита a—z (без различия между прописными и строчными буквами), цифры от 0 до 9 и дефис «-»; всего 37 символов. Алгоритм преобразования состоит из двух этапов. На первом этапе из исходного текста выбираются все символы, входящие в основную кодировку ASCII (коды 0—127), и переносятся подряд в закодированное слово и добавляется дефис. После этого, если в тексте встретились не ASCII-символы, к закодированному слову добавляются символы, преобразование которых идёт по процедуре, описанной в RFC 3492[6]. Если в исходном тексте символы ASCII отсутствовали, дополнительный дефис не используется. Поскольку дефис сам является символом ASCII, то при его наличии в исходном тексте он включается в выборку и дополнительный дефис используется после выборки символов ASCII.
| последовательность символов | кодировка | 
|---|---|
| abcdef | abcdef- | 
| abæcdöef | abcdef-qua4k | 
| schön | schn-7qa | 
| ยจฆฟคฏข | 22cdfh1b8fsa | 
| ☺ | 74h | 
| правда | 80aafi6cg | 
| 台湾 | xn--kprw13d | 
См. также
[править | править код]Примечания
[править | править код]- ↑ Куда движется DNS, и прав ли ICANN / Хабр. Дата обращения: 31 декабря 2023. Архивировано 31 декабря 2023 года.
- ↑ Что такое punycode конвертер и зачем он нужен? Дата обращения: 31 декабря 2023. Архивировано 31 декабря 2023 года.
- ↑ Эмоджи-домены: возможно ли, что они станут будущим Интернета? | ichip.ru. Дата обращения: 31 декабря 2023. Архивировано 31 декабря 2023 года.
- ↑ Paul Hoffman. RACE: Row-based ASCII Compatible Encoding for IDN (англ.). tools.ietf.org (16 октября 2000). Дата обращения: 13 марта 2020. Архивировано 21 июня 2020 года.
- ↑ Результаты проведённого компанией REG.RU тестирования работы браузеров с доменом .РФ. REG.RU (30 июня 2010). Дата обращения: 30 сентября 2010. Архивировано из оригинала 22 августа 2010 года.
- ↑ Adam M. Costello. Punycode: A Bootstring encoding of Unicode for Internationalized Domain Names in Applications (IDNA) (англ.). tools.ietf.org (март 2003). Дата обращения: 13 марта 2020. Архивировано 10 августа 2020 года.
Ссылки
[править | править код]- Punycode-конвертер
- IDN (Punycode) конвертер доменов
- Punycode converter (IDN converter) (англ.). Punycoder. Дата обращения: 13 марта 2020.