En este artículo
Que es Punycode?
Punycode es una sintaxis de codificación definida en RFC 3492 que convierte caracteres Unicode en un conjunto limitado de caracteres ASCII usado por el Sistema de Nombres de Dominio (DNS). Permite nombres de dominio internacionalizados (IDN) — nombres de dominio con caracteres no-ASCII — funcionar en la infraestructura DNS basada en ASCII.
Un dominio codificado en Punycode lleva el prefijo xn-- (el prefijo ACE) para señalar que contiene Unicode codificado. Un convertidor Punycode traduce entre la forma Unicode legible y la forma ASCII compatible con DNS.
Como funciona la codificación Punycode
Punycode usa un algoritmo bootstring para representar puntos de código Unicode como una secuencia de caracteres ASCII basicos.
- Separación Unicode — el codificador identifica que caracteres son ASCII basico (pasan sin cambios) y cuales son no-ASCII (necesitan codificación)
- Codificación delta — los caracteres no-ASCII se codifican como deltas numericos representando su posición y punto de código
- Prefijo ACE — la cadena codificada final recibe el prefijo xn-- para marcarla como Punycode
Pruébalo gratis — sin registro
Convertir Punycode →Cuando usar Punycode
La conversión Punycode es necesaria al trabajar con nombres de dominio internacionalizados en sistemas que solo soportan ASCII.
- Registro de dominios — los registradores requieren la forma Punycode para registrar dominios IDN
- Email con dominios internacionales — las direcciones con dominios no-ASCII deben convertirse a la forma xn-- para la entrega SMTP
- Configuración DNS — los archivos de zona DNS usan la forma Punycode para cualquier etiqueta de dominio con caracteres no-ASCII
Preguntas frecuentes
Es Punycode lo mismo que la codificación URL?
No. La codificación URL convierte caracteres en secuencias hex %XX para rutas URL. Punycode codifica especificamente etiquetas de dominio Unicode en ASCII para DNS. Resuelven problemas diferentes.
Puede usarse Punycode para phishing?
Si, esto se conoce como ataque homografo IDN. Los atacantes registran dominios con caracteres Unicode identicos a letras latinas. Los navegadores modernos muestran la forma xn-- para dominios sospechosos.
Todos los navegadores soportan nombres de dominio internacionalizados?
Si. Todos los navegadores modernos convierten automaticamente los dominios IDN a Punycode para la resolución DNS y muestran la forma Unicode en la barra de direcciones.