У цій статті
Що таке Punycode?
Punycode — це синтаксис кодування, визначений у RFC 3492, який перетворює символи Unicode в обмежений набір ASCII-символів, що використовується системою доменних імен (DNS). Він дозволяє інтернаціоналізованим доменним іменам (IDN) — доменним іменам з не-ASCII символами — працювати в ASCII-інфраструктурі DNS.
Домен, закодований у Punycode, має префікс xn-- (префікс ACE), що сигналізує про наявність закодованого Unicode. Конвертер Punycode перекладає між людиночитабельною формою Unicode та DNS-сумісною формою ASCII.
Як працює кодування Punycode
Punycode використовує алгоритм bootstring для представлення кодових точок Unicode як послідовності базових ASCII-символів.
- Розділення Unicode — кодер визначає, які символи є базовими ASCII (передаються без змін), а які є не-ASCII (потребують кодування)
- Дельта-кодування — не-ASCII символи кодуються як числові дельти, що представляють їх позицію та кодову точку
- Префікс ACE — кінцевий закодований рядок отримує префікс xn-- для позначення як Punycode
Спробуйте безкоштовно — реєстрація не потрібна
Конвертувати Punycode →Коли використовувати Punycode
Конвертація Punycode потрібна при роботі з інтернаціоналізованими доменними іменами в системах, що підтримують лише ASCII.
- Реєстрація домену — реєстратори вимагають форму Punycode для реєстрації IDN-доменів
- Електронна пошта з міжнародними доменами — адреси з не-ASCII доменами повинні бути конвертовані у форму xn-- для доставки SMTP
- Конфігурація DNS — файли зон DNS використовують форму Punycode для будь-якої мітки домену з не-ASCII символами
Часті запитання
Punycode — це те саме, що URL-кодування?
Ні. URL-кодування конвертує символи в послідовності %XX для URL-шляхів. Punycode спеціально кодує мітки доменів Unicode в ASCII для DNS. Вони вирішують різні проблеми.
Чи може Punycode використовуватися для фішингу?
Так, це відомо як атака IDN-гомографів. Зловмисники реєструють домени з Unicode-символами, ідентичними латинським літерам. Сучасні браузери показують форму xn-- для підозрілих доменів.
Чи підтримують всі браузери інтернаціоналізовані доменні імена?
Так. Всі сучасні браузери автоматично конвертують IDN-домени в Punycode для DNS-резолюції та відображають форму Unicode в адресному рядку.