Conversor Punycode
La etiqueta münchen se convierte en xn--mnchen-3ya, la forma en ASCII que aceptan los registros de dominio, los certificados y los sistemas antiguos. Codifique una etiqueta Unicode cada vez, o decodifique una etiqueta xn-- a sus letras legibles. Gratis en su navegador.
- Gratis
- Funciona en su navegador
- Sin registro
- Sus datos no salen de su equipo
Ejecutar — gratis
Ejemplo resuelto
- Texto
- münchen
- Modo de cálculo
- Encode
- Resultado
- xn--mnchen-3ya
- Texto Unicode
- münchen
- Cuerpo Punycode
- mnchen-3ya
Los nombres de dominio internacionalizados necesitan una codificación compatible con ASCII para que DNS, certificados y resolutores legados puedan transportar etiquetas con diéresis, acentos, cirílico, árabe o caracteres CJK. Punycode (RFC 3492) es el algoritmo Bootstring detrás del prefijo xn-- familiar en las A-labels IDNA. Esta capacidad codifica una sola etiqueta de dominio Unicode a esa forma ACE, o decodifica un cuerpo ACE o Punycode crudo de vuelta a la U-label Unicode original, con un campo mode simple y aritmética entera determinista. Caracteres de alfabeto inválidos, cuerpos xn-- vacíos, sustitutos sueltos y cadenas multi-etiqueta con puntos se rechazan con un error de entrada inválida claro en lugar de corrupción silenciosa.
Codifique una etiqueta de dominio Unicode a Punycode ACE (xn--)
El motor pone la etiqueta en minúsculas de forma independiente del locale, rechaza cadenas vacías, espacios en blanco, caracteres de control y cualquier punto embebido para que nunca trate por accidente un nombre de host multi-etiqueta completo como una sola etiqueta DNS. Las etiquetas ASCII puras pasan sin cambios y sin prefijo xn--, coincidiendo con la práctica IDNA para nombres LDH.
Cuando la etiqueta contiene algún punto de código no ASCII, el motor ejecuta el codificador Punycode RFC 3492 y antepone xn-- para producir la A-label usada en archivos de zona DNS, SAN de certificados y pantallas WHOIS. La respuesta incluye result (la etiqueta ACE o ASCII), unicode (la U-label normalizada), punycode (el cuerpo sin el prefijo xn--), ace verdadero o falso, mode encode y method rfc3492 para que las pruebas fijen cada campo.
Entradas idénticas producen siempre salidas idénticas porque la ruta es aritmética pura sin red, sin sal aleatoria y sin reloj de pared. Use esta ruta cuando necesite una A-label segura para pegar en una lista de migración, una línea de zona o un ticket de soporte que deba sobrevivir a sistemas que solo aceptan nombres de host ASCII.
Decodifique ACE o Punycode a Unicode y gestione entradas inválidas
Ponga mode en decode y coloque una etiqueta ACE como xn--mnchen-3ya o un cuerpo Punycode crudo como mnchen-3ya en text. El motor elimina un prefijo xn-- inicial cuando está presente, valida que el cuerpo use solo el alfabeto básico de letras, dígitos e guiones internos, y ejecuta el decodificador RFC 3492 para recuperar puntos de código Unicode—incluidos caracteres del plano suplementario representados con pares sustitutos en cadenas JavaScript.
Un decode exitoso devuelve result y unicode como la U-label, punycode como el cuerpo, ace verdadero cuando la entrada llevaba el prefijo xn--, mode decode y method rfc3492. Prefiera esta capacidad cuando su intención de búsqueda sea un conversor punycode para etiquetas de dominio legibles; el reparto de hostnames completos, la búsqueda de sufijos públicos y la resolución DNS en vivo pertenecen a otras herramientas.
Cómo usarlo con dominios y sus límites
Llame al conversor punycode gratuito en el navegador para manuales de soporte, demos de aula y comprobaciones puntuales de etiquetas sin instalar OpenSSL ni runtimes de lenguaje. Un flujo típico codifica una etiqueta de marca Unicode antes de escribir una A-label en una plantilla de zona, luego decodifica nombres ACE copiados de cabeceras de correo o registros de certificados para que los operadores lean la U-label prevista. Otro flujo verifica que las muestras de documentación sigan haciendo ida y vuelta antes de un lanzamiento.
Las etiquetas DNS están limitadas a sesenta y tres octetos en forma ACE, y este motor aplica ese límite en encode para que las etiquetas internacionales sobredimensionadas fallen pronto en lugar de producir cadenas no desplegables.
Qué puede hacer con ella
Preparación de zona DNS y certificados
Codifique etiquetas de marca o ciudad Unicode a A-labels xn-- antes de escribir archivos de zona, listas SAN ACME o reglas de host de proxy inverso que solo aceptan ASCII.
Legibilidad en soporte y registros
Decodifique nombres ACE de cabeceras de correo, registros de transparencia de certificados y sistemas de tickets a Unicode legible para agentes y clientes.
Preguntas frecuentes
¿Cómo convierto una etiqueta de dominio Unicode a Punycode?
El campo result devuelve la forma ACE como xn--mnchen-3ya.
¿Cómo decodifico una etiqueta xn-- a Unicode?
Ponga mode en decode y coloque la etiqueta ACE (o el cuerpo Punycode crudo sin xn--) en text. El campo result devuelve la U-label Unicode cuando la codificación es válida.
¿Qué ocurre con una etiqueta Punycode inválida?
Caracteres ilegales, cuerpos xn-- vacíos, idas y vueltas fallidas, puntos en la cadena y etiquetas vacías se rechazan y no se cobran.
¿El conversor punycode es gratuito?
La herramienta del navegador se ejecuta gratis en su dispositivo.
¿Puedo convertir un hostname completo con varias etiquetas?
No. Esta capacidad acepta una etiqueta a la vez y rechaza puntos. Divida el hostname y codifique o decodifique cada etiqueta por separado para salidas del tamaño DNS predecibles.
Herramientas relacionadas
Para desarrolladores — acceso por API
Todo lo de esta página está disponible por programación. Esta sección es para equipos que quieren integrarlo en sus sistemas; el resto puede usar la herramienta de arriba sin más.
Endpoint de API
¿Prefiere automatizarlo? Un POST autenticado crea la tarea; el resultado llega por webhook o enlace firmado. La misma capacidad también se ejecuta aquí en la web, por email y desde Telegram — y pronto también desde nuestra app.
Llámela desde su stack
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)Ejemplo de solicitud
{
"text": "münchen"
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "enc.punycode",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}La API es asíncrona: la llamada devuelve un task_id al instante y el resultado llega por webhook. El polling está limitado a 1 req/s por tarea.
Precio
Precio publicado — sin tokens ni créditos inventados. Una tarea fallida no se cobra.
Errores
| HTTP | Código | Significado |
|---|---|---|
401 | unauthorized | API key ausente o inválida. |
402 | insufficient_balance | El saldo no cubre el precio de la tarea. |
404 | unknown_type | El tipo de tarea no existe. |
429 | rate_limited | Demasiadas peticiones. Use el webhook en vez de sondear. |
Notas técnicas
Codifique una etiqueta de dominio Unicode a Punycode ACE (xn--)
Envíe un cuerpo JSON con el campo de cadena obligatorio text igual a una etiqueta de dominio en Unicode—por ejemplo un nombre de ciudad con diéresis, una marca en escritura nativa o una etiqueta japonesa—y deje mode en su valor predeterminado encode o fíjelo explícitamente a encode.
Decodifique ACE o Punycode a Unicode y gestione entradas inválidas
Tras decodificar re-codifica y exige un ida y vuelta exacto contra el cuerpo, de modo que cadenas ACE truncadas o editadas a mano fallan en cerrado con invalid_input en lugar de devolver glifos plausibles pero incorrectos. Cuerpos vacíos tras xn--, caracteres ilegales como signos de puntuación, texto no ASCII ofrecido para decode, cadenas multi-etiqueta con puntos y condiciones de desbordamiento lanzan un mensaje invalid_input descriptivo y no se cobran en la API prepago.
Uso de la API, precios, flujos DNS y límites prácticos
Use la API prepago KIT cuando un backend, panel de registrador, trabajo de automatización de certificados o SDK necesite el mismo paso encode o decode bajo saldo a $0.002 por elemento exitoso; la validación fallida nunca consume saldo tras el rechazo del motor. Procese cada etiqueta de un hostname multi-etiqueta por separado—la API rechaza puntos por diseño para que la landing SEO coincida con la intención de conversión de una sola etiqueta. Los autores que publican SDK pueden mapear el campo result a un botón de copiar mientras unicode, punycode y las banderas ace hacen autoexplicativos los ejemplos OpenAPI para quienes aprenden IDNA por primera vez.
Casos de integración
Documentación y comprobaciones golden de CI
Fije fixtures de encode y decode para que las muestras de documentación y las pruebas de integración continua fallen pronto si el manejo de Punycode o del prefijo ACE se desvía.