Конвертер IDN Punycode

Легко конвертуйте IDN у Punycode і назад за допомогою нашого інструменту конвертації IDN Punycode для точного управління доменними іменами.

5 з 2 оцінок
Конвертер IDN Punycode

Конвертер IDN Punycode, це безплатний інструмент, який перетворює інтернаціоналізовані доменні імена на ASCII у форматі Punycode, а Punycode, навпаки, на читабельний текст Unicode.

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

Punycode є частиною перетворення IDNA з Unicode-міток U-label на ASCII-мітки A-label. Завдяки йому імена з літерами та символами на кшталт ü, é або 漢 можна передавати через системи, спочатку розраховані лише на базові латинські літери, цифри та дефіси.

Мітка A-label у системі IDNA починається з xn--. Цей префікс повідомляє сумісним з IDNA програмам, що решта символів є представленням мітки U-label у форматі Punycode. Крапки залишаються роздільниками, тому кожна частина домену перетворюється окремо.

Punycode використовується в технології інтернаціоналізованих доменних імен у програмах, яку зазвичай скорочують до IDNA. IDNA також відповідає за перевірку та обробку символів, а Punycode створює ASCII-представлення допустимої мітки Unicode.

Punycode є кодуванням, а не шифруванням. Будь-хто може перетворити ASCII-форму назад на Unicode, тому Punycode не забезпечує конфіденційності й ніколи не повинен використовуватися для приховування інформації.

Схема: текст проходить через інструмент Конвертер IDN Punycode в обох напрямках

Як перетворити інтернаціоналізоване доменне ім'я?

Введи текст Unicode у поле Перетворити на Punycode/ASCII або ASCII-мітки A-label у поле Перетворити на IDN/текст. Відповідний результат з'явиться в полі Punycode/ASCII або IDN/текст.

  1. Скопіюй лише доменне ім'я або мітку, яку потрібно перетворити, без лапок навколо.
  2. Для тексту Unicode з літерами з діакритичними знаками або символами нелатинських абеток скористайся полем Перетворити на Punycode/ASCII.
  3. Для ASCII-міток A-label скористайся полем Перетворити на IDN/текст.
  4. Перевір кожну перетворену мітку, перш ніж додавати її до DNS, налаштувань електронної пошти або конфігурації програми.
Інструмент Конвертер IDN Punycode на digily.link із формою введення

Конвертер використовує функції PHP idn_to_ascii та idn_to_utf8. Обробка відбувається на сервері. Введені дані передаються на сервер через HTTPS і не зберігаються.

Приклади перетворення доменів

Простий приклад показує зв'язок між відображуваним доменним ім'ям і його формою, сумісною з DNS.

Вхідні дані münchen.de

Результат xn--mnchen-3ya.de

Якщо виконати зворотне перетворення результату, отримаємо münchen.de. Мітка de, що містить лише символи ASCII, не потребує перетворення, а мітка з ü стає міткою xn--.

Вхідні дані мають бути коректним текстом доменного імені. Основний формат обробляє типові випадки так:

  • Літери з діакритичними знаками та символи нелатинських абеток: допустимі мітки Unicode отримують ASCII-представлення за допомогою IDNA та Punycode.
  • Крапки: кожна крапка розділяє мітки. Тому домен може одночасно містити звичайні ASCII-мітки та закодовані мітки.
  • Цифри та звичайні дефіси: вони вже належать до ASCII й зазвичай залишаються читабельними, якщо відповідають синтаксичним правилам доменних імен.
  • Пробіли: у звичайних мітках вузлів DNS пробіли неприпустимі. Випадковий пробіл потрібно видалити, а не очікувати, що Punycode збереже його як частину домену.
  • Розділові знаки: крапка розділяє мітки, але символи шляху URL, порту або рядка запиту не є частиною імені вузла.
  • Порожні або надто довгі вхідні дані: порожнє значення не містить домену для перетворення. DNS також обмежує кожну закодовану мітку 63 октетами, тому візуально коротка мітка Unicode після перетворення може виявитися надто довгою.
Приклад результату, який створює інструмент Конвертер IDN Punycode

Чому Punycode не перетворюється або дає неочікуваний текст?

Зазвичай перетворення не вдається, якщо вхідні дані не є коректним текстом IDN, містять неправильно сформовану мітку A-label або перед цим пройшли через інше кодування. Під час перетворення на IDN/текст звичайні дані ASCII, які не є міткою A-label, можуть просто залишитися без змін. Перш ніж виправляти символи вручну, перевір, що саме містить джерело: Unicode-мітки U-label, ASCII-мітки A-label чи закодоване в URL ім'я вузла.

  • Неправильно сформовані мітки A-label або не те кодування: помилкова мітка xn-- може не перетворитися. Base64, шістнадцятковий текст і URL з відсотковим кодуванням не є Punycode.
  • Непідтримувані символи: Punycode може представляти значення Unicode, але правила IDNA та реєстри доменів можуть забороняти окремі символи, їхні поєднання або системи письма.
  • Перевищення довжини мітки: DNS обмежує кожну закодовану мітку 63 октетами, тому після перетворення мітка Unicode може стати надто довгою.
  • Зайві частини у вхідних даних: значення може стати некоректним, якщо разом з іменем вузла скопіювати дужки, номер порту або частину атрибута HTML.
  • Подвійне кодування: якщо символи в домені Punycode були явно або нестандартно закодовані за допомогою відсоткового кодування, вони можуть відображатися як послідовності зі знаком відсотка. Спочатку декодуй цей рівень URL за допомогою інструмента Декодер URL, а потім перетвори отриманий домен.
  • Двійкові дані замість тексту: перетворення IDN працює з текстом доменного імені в Unicode. Довільні байти файлу можуть не пройти перевірку або утворити беззмістовні символи, якщо обробляти їх як текст.

Де можна зустріти Punycode?

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

В адресах електронної пошти Punycode можна використовувати в доменній частині після знака @. Він не кодує ім'я поштової скриньки перед знаком @. Дані JSON і рядки запиту можуть містити Punycode, якщо в них передається ім'я вузла, однак синтаксис JSON і рядків запиту не вимагає використовувати Punycode для звичайного тексту.

Для вмісту URI даних зазвичай використовують відсоткове кодування або Base64. Punycode з'являється в них лише тоді, коли текст усередині містить інтернаціоналізоване ім'я вузла. Так само для значень шляху або запиту використовуй Кодувальник URL, а для самого імені вузла, Punycode.

Поширені запитання

Чи можна вставити в конвертер IDN повну URL-адресу?

Безпечніше виділити ім'я вузла й перетворити лише його. Схема, порт, шлях, фрагмент і запит мають окремі синтаксичні правила, а символам у цих частинах може знадобитися кодування URL замість Punycode.

Якщо домен містить мітку xn--, сайт небезпечний?

Ні. Багато легітимних інтернаціоналізованих доменів використовують мітки xn--. Однак в оманливих назвах можуть застосовуватися візуально схожі символи з різних систем письма. Тому перед введенням паролів або платіжних даних перевір декодоване написання та переконайся, що це саме та організація, яку ти очікуєш побачити.

Чи можна використовувати емодзі в домені Punycode?

Емодзі заборонені в доменних мітках IDNA, хоча алгоритм Punycode може кодувати їхні кодові точки. Правила реєстру доменів можуть додатково обмежувати дозволені системи письма та символи.

Чому браузер показує Punycode замість Unicode?

Браузери можуть залишати ASCII-форму, якщо мітка поєднує різні системи письма, містить символи, пов'язані з підміною, або не відповідає правилам відображення браузера. Це захисний механізм відображення, а не ознака неправильного перетворення.

Чи точно перетворене ім'я працюватиме в DNS?

Ні. Успішне перетворення не доводить, що домен зареєстрований, доступний для реєстрації або дозволений відповідним реєстром. Перш ніж використовувати результат, перевір довжину мітки, читабельне написання та переконайся, що реєстр приймає використані символи.

Поділитися

Популярні інструменти