Saltar al contenido
Herramientas útiles

Codificación URL (percent-encoding): qué es y cómo decodificar

AutorEquipo editorial 9-07-2026, 00:09 218
Codificación URL (percent-encoding): qué es y cómo decodificar
Publicidad
En breve
  • La codificación de URL (percent-encoding) reemplaza los símbolos «no seguros» por una combinación del signo % y dos dígitos hexadecimales, por ejemplo, un espacio se convierte en %20.
  • Se deben codificar los espacios, la cirílica, los caracteres especiales (?, &, #, =, /) y todo lo que pueda romper la estructura de la dirección.
  • La cirílica se codifica en UTF-8: una letra rusa ocupa 2 bytes y se convierte en 6 símbolos del tipo %D0%9F.
  • La decodificación es el proceso inverso: %20 vuelve a ser un espacio, y %D0%9F es la letra «П».

Seguramente has visto direcciones donde en lugar de las letras habituales aparecen misteriosos «%D0%BF%D1%80%D0%B8» y signos de porcentaje. Esto no es un error ni un fallo: así funciona la codificación de URL, un mecanismo que permite transmitir espacios, letras rusas y caracteres especiales en las direcciones web sin riesgo de «romper» el enlace. En este artículo explicaremos en palabras simples qué es la codificación por porcentaje, para qué sirve, qué caracteres deben codificarse y cómo realizar la transformación inversa: la decodificación.

Codificador de URL
Codifica y decodifica URL en línea — gratis
Abrir herramienta →

¿Qué es la codificación de URL?

La codificación de URL, también conocida como percent-encoding («codificación por porcentaje»), es una forma de representar cualquier carácter en la dirección de una página utilizando un conjunto seguro de caracteres. El estándar de direcciones (RFC 3986) permite usar en las URL solo un alfabeto limitado: letras latinas A–Z y a–z, números 0–9 y algunos signos (- _ . ~). Todo lo demás — espacios, cirílico, comillas, paréntesis — se considera «inseguro» y debe ser codificado.

Funciona así: el programa toma el byte del carácter, lo convierte en un número hexadecimal y coloca un signo de porcentaje delante. El espacio tiene el código 32, en el sistema hexadecimal es 20, por lo que en la dirección el espacio se ve como %20. Es precisamente por el signo de porcentaje que el método recibió su nombre.

¿Por qué codificar URL?

La razón principal es la fiabilidad en la transmisión de datos. La dirección tiene una estructura estricta, donde ciertos caracteres actúan como separadores: el signo de interrogación separa los parámetros, el ampersand separa los pares 'clave=valor', el símbolo de número indica un ancla. Si el usuario introduce en la barra de búsqueda del sitio una palabra con un ampersand o un espacio, y usted la inserta en el enlace 'tal cual', el navegador o el servidor interpretarán la dirección incorrectamente.

Aquí hay situaciones típicas en las que la codificación es obligatoria:

  • Espacios. En la dirección no deben estar — se convierten en %20 (o, en los parámetros del formulario, en el signo +).
  • Cirílico y otros alfabetos nacionales. Las letras rusas no están en el conjunto básico de ASCII, por lo que se codifican byte a byte.
  • Símbolos especiales delimitadores. Si ? & = # / son parte de los propios datos y no de la estructura de la dirección, deben ser codificados, de lo contrario, el significado del enlace se distorsionará.
  • Signos de puntuación y símbolos. Comillas, paréntesis, porcentajes, más — todo esto también se codifica para que la dirección permanezca inequívoca.

Qué símbolos se codifican

Es más fácil recordar al revés: solo los símbolos 'seguros' no se codifican. Esto incluye letras latinas, números y signos - _ . ~ (se les llama unreserved). Todo lo demás es ya sea reservado (reserved) o inseguro y debe ser codificado si se utiliza como datos normales. A continuación, una tabla de ejemplos comunes.

SímboloCódigoExplicación
espacio%20en los parámetros del formulario puede ser +
!%21signo de exclamación
#%23numeral (ancla)
%%25el signo de porcentaje
&%26ampersand (separador de parámetros)
+%2Bmás
/%2Fbarra
=%3Digual
?%3Fsigno de interrogación
П%D0%9Fcirílico, 2 bytes UTF-8

Cómo se codifica el cirílico

Las letras rusas están relacionadas con la confusión más común. A diferencia del alfabeto latino, donde una letra es un byte, el cirílico en la codificación UTF-8 ocupa dos bytes por símbolo. Por lo tanto, una letra se convierte en seis caracteres: dos bytes, cada uno en forma de %XX. Por ejemplo, la palabra «привет» se codifica como %D0%BF%D1%80%D0%B8%D0%B2%D0%B5%D1%82.

Es importante que tanto la codificación como la decodificación se realicen en la misma codificación; hoy en día, esto es casi siempre UTF-8. Si el sitio utiliza otra codificación (por ejemplo, la obsoleta Windows-1251), las mismas letras darán secuencias completamente diferentes, y con una decodificación incorrecta en lugar de texto verás «кракозябры». Por lo tanto, la web moderna está estandarizada en UTF-8.

Cómo decodificar URL

La decodificación es la operación inversa. El algoritmo busca en la cadena cada construcción del tipo %XX, convierte el número hexadecimal de nuevo a byte y restaura el símbolo original. Así, %20 vuelve a ser un espacio, y el par %D0%9F se convierte en la letra «П». Hacer esto manualmente con la tabla lleva tiempo, por lo que generalmente se utilizan herramientas listas.

Métodos para decodificar (y codificar) una dirección:

  • Herramientas en línea — pegas la cadena, obtienes el resultado en un clic, no necesitas instalar nada.
  • JavaScript — las funciones encodeURIComponent() y decodeURIComponent() codifican y decodifican valores individuales; encodeURI() y decodeURI() trabajan con la dirección completa.
  • PHP — funciones urlencode()/urldecode() para parámetros de formularios y rawurlencode()/rawurldecode() para una codificación percent-encoding estricta.
  • Python — el módulo urllib.parse con los métodos quote() y unquote().

Consejo práctico: codifique solo valores individuales de parámetros, no la dirección completa. De lo contrario, los delimitadores de servicio como ? y & también se codificarán, y el enlace dejará de funcionar. Para un valor individual en JavaScript, se utiliza encodeURIComponent(), y para ensamblar toda la dirección — encodeURI().

Preguntas Frecuentes

¿Qué significa %20 en un enlace?
Es un espacio codificado. El código del espacio es 32, en el sistema hexadecimal es 20, por lo que en la dirección se escribe como %20. En los parámetros de los formularios web, el espacio a veces se reemplaza por el signo «más» (+).

¿Por qué las letras rusas en la URL aparecen como %D0%BF?
El cirílico se codifica según el estándar UTF-8, donde cada letra ocupa dos bytes. Cada byte se escribe como un signo de porcentaje y dos dígitos hexadecimales, por lo que una letra rusa se convierte en seis símbolos del tipo %D0%BF.

¿Es necesario codificar toda la dirección o solo una parte?
Solo se codifican los valores, por ejemplo, el texto de la consulta de búsqueda o el nombre del archivo. Los caracteres de servicio que separan las partes de la dirección (?, &, /, =) deben permanecer sin codificar, de lo contrario, el navegador no entenderá la estructura del enlace.

¿En qué se diferencia la codificación de la decodificación?
La codificación convierte caracteres comunes en una representación segura del tipo %XX, mientras que la decodificación realiza la transformación inversa: restaura los espacios, letras y signos originales a partir de %XX. Son dos caras de un mismo mecanismo de percent-encoding.

Codificador de URL
Codifica y decodifica URL en línea — gratis
Abrir herramienta →

Actualizado: 9 de julio de 2026. Edición de MegaInet.art.

¿Qué tan útil es el material?La evaluación nos ayuda a elegir temas
00 evaluaciones
Analítica

Estadísticas de la historia

218vistas
0comentarios
5min de lectura
9 / 20rango entre historias de sección

Leer más a menudo que 58% de historias en esta sección.

Discusión

Aún nadie se ha pronunciado — sé el primero.

Los comentarios son escritos por los participantes Inicie sesión en el sitio: es gratis y toma un minuto. Los comentarios pasan por moderación.
Iniciar sesión
Publicidad

A qué búsquedas responde esta página