O que faz
Converte nomes de domínio internacionalizados entre Unicode e punycode - a forma ASCII (rótulos xn--) que o DNS realmente resolve. Digite münchen.de e você obtém xn--mnchen-3ya.de, o nome que um registrador armazena e que um resolvedor consulta. A direção contrária restaura a forma de exibição Unicode. A ferramenta executa ela mesma o algoritmo bootstring completo da RFC 3492 e segue a regra da IDNA de codificar apenas rótulos que contêm caracteres não-ASCII, então rótulos puramente ASCII passam intocados.
Como usar
- Escolha uma direção: Unicode → Punycode ou Punycode → Unicode.
- Digite um domínio, ou toque num chip de exemplo:
münchen.de,日本.jp,xn--mnchen-3ya.de,bücher.example. - O resultado aparece grande e centralizado. Copie-o, ou copie um link de compartilhamento com a sua entrada exata.
O botão Swap inverte a direção e leva a saída atual para a entrada. Codifique um domínio, toque em Swap, e a ferramenta decodifica de volta em um clique.
Exemplos
| Entrada | Saída |
|---|---|
münchen.de |
xn--mnchen-3ya.de |
Bücher.DE |
xn--bcher-kva.de - a entrada é convertida para minúsculas primeiro, conforme a IDNA |
café.fr |
xn--caf-dma.fr |
日本.jp |
xn--wgv71a.jp |
example.com |
example.com - ASCII puro passa direto |
xn--mnchen-3ya.de |
münchen.de |
Como o punycode funciona
O DNS só fala ASCII. Resolvedores, registros e caches foram todos construídos sobre bytes, não sobre Unicode. Ainda assim, pessoas querem domínios nos seus próprios scripts, então um nome internacionalizado viaja disfarçado: cada rótulo não-ASCII é comprimido em um rótulo ASCII com prefixo xn--, e o navegador mostra a forma Unicode somente depois que a consulta tem sucesso. O prefixo é a marca que diz “decodifique-me para recuperar o rótulo real”.
A compressão é a parte engenhosa. Um rótulo como münchen é quase todo composto de letras ASCII mais um intruso (ü). O punycode, definido na RFC 3492 como um algoritmo bootstring, empacota os intrusos e as suas posições em um sufixo compacto de dígitos base-36 e hífens:
- Copie os caracteres ASCII, na ordem:
mnchen. - Anexe um hífen separador:
mnchen-. - Anexe valores codificados em delta que nomeiam cada caractere inserido e a sua posição:
3ya.
O resultado, xn--mnchen-3ya, pertence exclusivamente a münchen - o algoritmo é reversível, e codificar a decodificação sempre devolve o mesmo rótulo. Decodificar divide o rótulo no separador, reproduz os deltas e reinsere cada caractere Unicode na posição registrada.
Duas regras de acabamento vindas da IDNA: a codificação converte o domínio para minúsculas primeiro, porque domínios comparam sem diferenciar maiúsculas de minúsculas e a forma ACE é sempre minúscula. A decodificação toca apenas rótulos que começam com xn--; qualquer outro passa literal, então not--valid continua not--valid. Um rótulo xn-- malformado - um dígito inválido, um truncamento, um overflow - rejeita o domínio inteiro, e a ferramenta avisa.
Bom saber
- Privado: toda a conversão roda 100% no cliente - o seu domínio nunca sai do navegador.
- Alerta de phishing: rótulos
xn--podem imitar nomes familiares (ataques homógrafos). Navegadores revelam a forma punycode quando scripts se misturam dentro de um mesmo rótulo; esta ferramenta mostra exatamente o que qualquer rótulo esconde. - Ferramentas relacionadas: URL Inspector, HTML Entity Encoder, Slugify.