Кодування

Punycode encode/decode

Кодування доменних імен з юнікод-символами (IDN) у ASCII-сумісний формат Punycode (xn--) і назад.

Часті запитання

Навіщо потрібен Punycode?

DNS підтримує лише ASCII-символи, тому доменні імена з юнікод-літерами (кирилицею, умлаутами тощо) перекодовують у ASCII-сумісний формат Punycode з префіксом xn--. Саме такий вигляд домен має "під капотом", хоча в адресному рядку браузер зазвичай показує оригінальні символи.

У чому небезпека IDN-доменів з юнікод-символами?

Різні алфавіти містять символи, які виглядають однаково (наприклад, кирилична "а" і латинська "a"), тому шахраї можуть зареєструвати домен-двійник для фішингу — це називають homograph-атакою. Розкодувавши Punycode, можна перевірити, з яких символів насправді складається домен.

Чи можна закодувати весь URL, а не лише домен?

Ні, Punycode застосовується лише до окремих міток доменного імені (частин між крапками), а не до шляху, параметрів запиту чи схеми URL. Для іншого тексту в URL використовують percent-encoding.