Conversor Punycode
O rótulo münchen vira xn--mnchen-3ya, a forma em ASCII aceita por registros de domínio, certificados e sistemas antigos. Codifique um rótulo Unicode por vez ou decodifique um rótulo xn-- de volta para as letras legíveis. Grátis no seu navegador.
- Grátis
- Funciona no seu navegador
- Sem cadastro
- Seus dados não saem do seu aparelho
Executar grátis
Exemplo resolvido
- Texto
- münchen
- Modo de cálculo
- Encode
- Resultado
- xn--mnchen-3ya
- Texto Unicode
- münchen
- Corpo Punycode
- mnchen-3ya
Nomes de domínio internacionalizados precisam de uma codificação compatível com ASCII para que DNS, certificados e resolvedores legados transportem rótulos com trema, acentos, cirílico, árabe ou caracteres CJK. Punycode (RFC 3492) é o algoritmo Bootstring por trás do prefixo xn-- familiar nas A-labels IDNA. Esta capacidade codifica um único rótulo de domínio Unicode nessa forma ACE, ou decodifica um corpo ACE ou Punycode bruto de volta ao U-label Unicode original, com um campo mode simples e aritmética inteira determinística. Caracteres de alfabeto inválidos, corpos xn-- vazios, surrogates isolados e strings multi-rótulo com pontos são rejeitados com erro de entrada inválida claro em vez de corrupção silenciosa.
Codifique um rótulo de domínio Unicode para Punycode ACE (xn--)
O motor coloca o rótulo em minúsculas de forma independente de locale, rejeita strings vazias, espaços em branco, caracteres de controle e quaisquer pontos embutidos para você nunca tratar acidentalmente um hostname multi-rótulo inteiro como um único rótulo DNS. Rótulos ASCII puros passam inalterados sem prefixo xn--, alinhados à prática IDNA para nomes LDH.
Quando o rótulo contém qualquer ponto de código não ASCII, o motor executa o codificador Punycode RFC 3492 e prefixa o resultado com xn-- para produzir o A-label usado em arquivos de zona DNS, SANs de certificado e exibições WHOIS. A resposta inclui result (o rótulo ACE ou ASCII), unicode (o U-label normalizado), punycode (o corpo sem o prefixo xn--), ace verdadeiro ou falso, mode encode e method rfc3492 para que testes fixem cada campo.
Entradas idênticas sempre produzem saídas idênticas porque o caminho é aritmética pura sem rede, sem sal aleatório e sem relógio de parede. Use este caminho quando precisar de um A-label seguro para colar em uma lista de migração, uma linha de zona ou um ticket de suporte que deva sobreviver a sistemas que só aceitam hostnames ASCII.
Decodifique ACE ou Punycode de volta a Unicode e trate entrada inválida
Defina mode como decode e coloque um rótulo ACE como xn--mnchen-3ya ou um corpo Punycode bruto como mnchen-3ya em text. O motor remove um prefixo xn-- inicial quando presente, valida que o corpo use apenas o alfabeto básico de letras, dígitos e hífens internos, e executa o decodificador RFC 3492 para recuperar pontos de código Unicode—incluindo caracteres do plano suplementar representados com pares surrogates em strings JavaScript.
Decode bem-sucedido devolve result e unicode como o U-label, punycode como o corpo, ace verdadeiro quando a entrada trouxe o prefixo xn--, mode decode e method rfc3492. Prefira esta capacidade quando a intenção de busca for um conversor punycode para rótulos de domínio legíveis; divisão de hostname completo, busca de sufixo público e resolução DNS ao vivo pertencem a outras ferramentas.
Como usar com domínios e seus limites
Chame o conversor punycode gratuito no navegador para playbooks de suporte, demos de sala e checagens pontuais de rótulo sem instalar OpenSSL ou runtimes de linguagem. Um fluxo típico codifica um rótulo de marca Unicode antes de gravar um A-label em um template de zona, depois decodifica nomes ACE copiados de cabeçalhos de e-mail ou logs de certificado para operadores lerem o U-label pretendido. Outro fluxo verifica se amostras de documentação ainda fazem ida e volta antes de um release.
Rótulos DNS são limitados a sessenta e três octetos na forma ACE, e este motor aplica esse limite no encode para rótulos internacionais oversized falharem cedo em vez de produzir strings não implantáveis.
Casos de uso
Preparação de zona DNS e certificados
Codifique rótulos de marca ou cidade Unicode para A-labels xn-- antes de gravar arquivos de zona, listas SAN ACME ou regras de host de proxy reverso que só aceitam ASCII.
Legibilidade em suporte e logs
Decodifique nomes ACE de cabeçalhos de e-mail, logs de transparência de certificados e sistemas de tickets de volta a Unicode legível para agentes e clientes.
Perguntas frequentes
Como converto um rótulo de domínio Unicode para Punycode?
O campo result devolve a forma ACE como xn--mnchen-3ya.
Como decodifico um rótulo xn-- de volta a Unicode?
Defina mode como decode e coloque o rótulo ACE (ou o corpo Punycode bruto sem xn--) em text. O campo result devolve o U-label Unicode quando a codificação é válida.
O que acontece com um rótulo Punycode inválido?
Caracteres ilegais, corpos xn-- vazios, idas e voltas falhas, pontos na string e rótulos vazios são rejeitados e não cobrados.
O conversor punycode é gratuito?
A ferramenta do navegador roda grátis no seu dispositivo.
Posso converter um hostname completo com vários rótulos?
Não. Esta capacidade aceita um rótulo por vez e rejeita pontos. Divida o hostname e codifique ou decodifique cada rótulo separadamente para saídas de tamanho DNS previsíveis.
Ferramentas relacionadas
Para desenvolvedores — acesso via API
Tudo nesta página está disponível via API. Esta seção é para equipes que querem integrar a ferramenta aos próprios sistemas; quem não precisa disso pode simplesmente usar a ferramenta acima.
Endpoint
Autenticação por token Bearer. Um único POST coloca a tarefa na fila; o resultado chega por webhook ou link assinado.
Chame do seu código
curl -X POST https://api.kit.forhosting.com/enc/punycode \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"münchen"}'const res = await fetch("https://api.kit.forhosting.com/enc/punycode", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "münchen"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/enc/punycode",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "münchen"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/enc/punycode", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"münchen"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"münchen"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/enc/punycode", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemplo de requisição
{
"text": "münchen"
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "enc.punycode",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}A API é assíncrona: cada chamada devolve um task_id na hora. Se preferir polling, consulte o status a até 1 requisição por segundo.
Preço
Preço publicado, sem tokens nem créditos escondidos. Tarefa que falha não é cobrada.
Erros
| HTTP | Código | O que significa |
|---|---|---|
401 | unauthorized | Token ausente ou inválido. Confira o header Authorization. |
402 | insufficient_balance | Saldo insuficiente para esta tarefa. Faça uma recarga e tente de novo. |
404 | unknown_type | Esse tipo de tarefa não existe. Confira o campo type no catálogo. |
429 | rate_limited | Muitas requisições em pouco tempo. Espere um instante e tente de novo. |
Notas técnicas
Codifique um rótulo de domínio Unicode para Punycode ACE (xn--)
Envie um corpo JSON com o campo string obrigatório text definido como um rótulo de domínio em Unicode—por exemplo um nome de cidade com trema, uma marca em escrita nativa ou um rótulo japonês—e deixe mode no padrão encode ou defina mode como encode explicitamente.
Decodifique ACE ou Punycode de volta a Unicode e trate entrada inválida
Após decodificar, re-codifica e exige ida e volta exata contra o corpo para que strings ACE truncadas ou editadas à mão falhem fechadas com invalid_input em vez de devolver glifos plausíveis mas errados. Corpos vazios após xn--, caracteres ilegais como pontuação, texto não ASCII oferecido para decode, strings multi-rótulo com pontos e condições de overflow disparam uma mensagem invalid_input descritiva e não são cobrados na API pré-paga.
Uso da API, preços, fluxos DNS e limites práticos
Use a API pré-paga KIT quando um backend, painel de registrador, job de automação de certificados ou SDK precisar do mesmo passo encode ou decode sob saldo a US$ 0,002 por item bem-sucedido; validação falha nunca consome saldo após o motor rejeitar a requisição. Processe cada rótulo de um hostname multi-rótulo separadamente—a API rejeita pontos por design para a landing de SEO coincidir com a intenção de conversão de um único rótulo. Autores que publicam SDK podem mapear o campo result para um botão de copiar enquanto unicode, punycode e flags ace tornam exemplos OpenAPI autoexplicativos para leitores que aprendem IDNA pela primeira vez.
Casos de integração
Docs e checagens golden de CI
Fixe fixtures de encode e decode para amostras de documentação e testes de integração contínua falharem rápido se o tratamento de Punycode ou do prefixo ACE divergir.