Codificación

Punycode encode/decode

Codificación de nombres de dominio con caracteres Unicode (IDN) al formato ASCII compatible Punycode (xn--) y viceversa.

The DNS system historically only supports ASCII characters, so domain names with Cyrillic, CJK, or other non-ASCII characters (IDN) are encoded as Punycode — an ASCII-compatible form prefixed with xn--. This tool encodes and decodes such domains.

How to use it

Common uses

Things to keep in mind

Visually similar characters from different scripts (like Cyrillic "а" and Latin "a") can form a domain that looks identical to a known brand — this is the basis of homograph phishing.

Not every browser shows decoded Unicode the same way: when a domain label mixes scripts, browsers often deliberately show the raw xn-- form as a warning sign.

Artículo sobre esta herramienta: Punycode: cómo funcionan los dominios internacionalizados en el DNS

Preguntas frecuentes

¿Para qué sirve Punycode?

Punycode permite representar nombres de dominio con caracteres Unicode (letras acentuadas, cirílico, chino, emoji, etc.) usando solo ASCII, ya que el sistema DNS solo entiende ese conjunto de caracteres. El resultado siempre empieza con el prefijo xn--.

¿Qué es el riesgo de homógrafos en dominios IDN?

Es la posibilidad de crear dominios que se ven casi idénticos a uno legítimo usando letras Unicode que se parecen visualmente (por ejemplo una "a" cirílica en vez de la latina), un truco usado en ataques de phishing. Ver el equivalente en Punycode ayuda a detectar estos dominios falsos.

¿Se envía el dominio que introduzco a algún servidor?

No, la conversión entre Unicode y Punycode se realiza completamente en tu navegador, sin consultar ningún servidor externo.

¿Cómo saber si un enlace usa Punycode?

Un dominio codificado siempre lleva el prefijo xn-- antes de cada etiqueta que contenga caracteres no ASCII. Si en la barra de direcciones o en un correo ves un dominio que empieza por xn--, es señal de un IDN — conviene comprobar qué texto se esconde tras la codificación.

¿Todos los navegadores muestran el cirílico igual en la barra de direcciones?

No. Algunos navegadores solo muestran el Unicode decodificado si todos los caracteres del dominio pertenecen a un único alfabeto, y al mezclar alfabetos (señal de un ataque homógrafo) muestran deliberadamente el registro xn-- en crudo en lugar de los caracteres originales.

Artículos: Codificación

Base64: para qué sirve la codificación y cómo funciona

Cómo Base64 convierte datos binarios en texto ASCII y cuándo esto realmente hace falta.

Base32: en qué se diferencia de Base64 y cuándo es más práctico

El alfabeto de Base32, que no distingue mayúsculas, y los casos donde resulta más práctico que Base64.

URL Encode/Decode: el percent-encoding en los enlaces

Cómo los caracteres especiales en direcciones y parámetros se convierten en secuencias %XX.

HTML Entities: cómo mostrar caracteres especiales de forma segura

Por qué hay que escapar los caracteres < > & y cómo esto evita que el marcado se rompa.

JWT: la estructura del token y qué significa "decodificar" un JWT

El header, el payload y la signature de un token JWT, y por qué decodificar no es lo mismo que verificar la firma.

Unicode Escape: qué significan las secuencias \uXXXX

De dónde salen las secuencias tipo \u0041 en JSON y cadenas JS, y qué significan.

ROT13 y el cifrado César: sustitución simple de caracteres

Por qué un desplazamiento de 13 letras hace que ROT13 sea su propio inverso, y por qué se sigue usando hoy.

Código Morse: cómo el texto se convierte en puntos y rayas

El principio de codificar letras con puntos y rayas, y dónde se usa el código Morse hoy en día.

Data URI: cuándo incrustar imágenes directamente en el código

Cómo un Data URI incrusta el contenido de un archivo directamente en HTML o CSS, y cuándo vale la pena.

Gzip + Base64: comprimir datos para transmitirlos como texto

Por qué los datos binarios comprimidos también se codifican en Base64 antes de meterlos en un campo de texto.

XML Entities: escapar caracteres en documentos XML

Las cinco entidades XML obligatorias sin las cuales el documento se rompe al analizarlo.