Encoders & Utilities

Convertisseur Punycode

Convertit les noms de domaine internationalisés (IDN ↔ ASCII).

Domain or IDN Paste a domain in any script — we will convert to both Punycode (xn--…) and Unicode. Email-style user@host works too.
مثال.السعودية
Unicode → ASCII
Unicode form
مثال.السعودية
ASCII / Punycode form
xn--mgbh0fb.xn--mgberp4a5d4ar
Per-label breakdown
Unicode ASCII Scripts
مثال xn--mgbh0fb Arabic
السعودية xn--mgberp4a5d4ar Arabic

À propos de cet outil

Punycode (RFC 3492) est l'encodage que le système DNS utilise pour représenter les caractères non-ASCII dans les noms de domaine. Le nom cyrillique пример.рф devient xn--e1afmkfd.xn--p1ai dans les requêtes DNS réelles ; un 例え.テスト chinois devient xn--r8jz45g.xn--zckzah. La traduction est entièrement bidirectionnelle — collez l'une ou l'autre forme, obtenez l'autre. Notre outil gère un seul label, un domaine complet, ou plusieurs domaines séparés par des espaces en une fois.

L'encodage fait partie de la norme IDNA (Internationalized Domain Names in Applications). Les navigateurs, serveurs mail et bibliothèques TLS effectuent cette conversion en arrière-plan — mais dès que vous déboguez un problème DNS, configurez une règle de pare-feu, ou signez un certificat SSL, vous avez généralement besoin de la forme punycode vous-même. Le préfixe xn-- est un marqueur fixe qui dit « ce label est encodé en punycode ».

Quand utiliser cet outil

  • Inspecter un lien suspect. Les campagnes de phishing déguisent les URL en mélangeant les scripts — décodez n'importe quel lien pour voir si раypal.com est vraiment PayPal ou un sosie cyrillique (l'attaque homographe).
  • Certificats SSL pour les domaines IDN. La plupart des CA exigent la forme punycode comme SAN.
  • Configurations de pare-feu et DNS. Les routeurs, BIND et la plupart des listes d'autorisation ont besoin de la forme ASCII — l'Unicode convivial est pour la barre d'adresse du navigateur, pas pour le fichier de configuration.
  • Enregistrements DNS email. Les enregistrements SPF, DKIM et DMARC référencent tous la forme punycode du domaine.

À propos des attaques homographes (sosies)

Unicode a de nombreux caractères qui ressemblent visuellement aux lettres latines — le cyrillique а (U+0430) vs le latin a (U+0061), le grec ο vs le latin o. Punycode les révèle instantanément : un « légitime » example.com rendu avec des caractères de scripts mixtes devient quelque chose comme xn--exampe-9he.com en punycode. Si un domaine familier se décode en quelque chose avec un préfixe xn--, suspectez une usurpation homographe.

Questions fréquentes

Qu'est-ce que le préfixe xn-- ?

Le « préfixe ACE » — le marqueur fixe qui identifie un label DNS comme encodé en punycode. Toute partie de domaine commençant par xn-- est destinée à être décodée en Unicode avant d'être montrée aux humains. Le préfixe a été réservé exclusivement à cet usage depuis IDNA-2003 ; vous pouvez vous y fier pour distinguer les vrais noms Unicode des correspondances accidentelles.

Cela me protège-t-il des domaines sosies ?

Il les expose. Lorsque vous collez un lien suspect et que la forme punycode commence par xn-- tandis que le texte affiché semble purement latin, c'est une attaque homographe — des caractères cyrilliques, grecs ou arméniens déguisés en latin. Les navigateurs modernes affichent eux-mêmes la forme punycode lorsque les scripts sont mélangés, mais si vous avez le moindre doute sur une URL reçue, la décoder ici donne une réponse définitive.

Pourquoi les TLD ont-ils parfois aussi xn-- ?

Parce que les TLD IDN existent : .рф (Russie), .中国 (Chine), .укр (Ukraine), .한국 (Corée), et des dizaines d'autres. Chacun de ceux-ci se résout en un équivalent punycode (.xn--p1ai, .xn--fiqs8s, .xn--j1amh, .xn--3e0b707e). Lorsqu'un domaine utilise à la fois un label IDN et un TLD IDN, les deux segments commenceront par xn--.

Puis-je utiliser des scripts mixtes dans un seul label ?

Techniquement oui, mais les registres l'interdisent pour des raisons de sécurité. Les règles IDNA de l'ICANN et la plupart des registres interdisent le mélange de scripts dans un seul label (par exemple latin + cyrillique dans le même mot), spécifiquement pour contrer les attaques homographes. L'encodeur punycode traitera toujours la chaîne, mais le domaine résultant serait non enregistrable chez tout registrar majeur. Utilisez toujours un script par label.