En este artículo
Que es Punycode?
Punycode es una sintaxis de codificacion 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 senalar que contiene Unicode codificado. Un convertidor Punycode traduce entre la forma Unicode legible y la forma ASCII compatible con DNS.
Como funciona la codificacion Punycode
Punycode usa un algoritmo bootstring para representar puntos de codigo Unicode como una secuencia de caracteres ASCII basicos.
- Separacion Unicode — el codificador identifica que caracteres son ASCII basico (pasan sin cambios) y cuales son no-ASCII (necesitan codificacion)
- Codificacion delta — los caracteres no-ASCII se codifican como deltas numericos representando su posicion y punto de codigo
- 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 conversion 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
- Configuracion 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 codificacion URL?
No. La codificacion 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 resolucion DNS y muestran la forma Unicode en la barra de direcciones.