Codificador de URL
Codifica en porcentaje valores de consulta y URL completas para tu código
Acerca de Codificador de URL
El Codificador de URL da las tres codificaciones porcentuales que suele necesitar el código JavaScript. «Un valor» ejecuta encodeURIComponent, que escapa & = ? / # y todos los demás caracteres salvo las letras, los dígitos y - _ . ! ~ * ' ( ), para un solo parámetro de consulta o segmento de ruta. «Una URL completa» ejecuta encodeURI entre las secuencias %XX que ya hay, así que la dirección conserva su estructura y %20 nunca se convierte en %2520. «RFC 3986 estricto» también escapa ! ' ( ) *. «Decodificar» ejecuta decodeURIComponent y, de forma predeterminada, primero lee + como un espacio, como hacen los datos de formulario. Las mismas llamadas que escribirías en tu código se ejecutan aquí, en tu dispositivo.
Ejemplo
Un valor de consulta codificado con «Un valor» y, después, una dirección completa codificada con «Una URL completa»:
Entrada
café au lait & croissants https://example.com/search?q=café au lait&page=2
Codificar
caf%C3%A9%20au%20lait%20%26%20croissants https://example.com/search?q=caf%C3%A9%20au%20lait&page=2
Cómo codificar un valor o una URL completa
- 1Pega en el cuadro un valor de consulta, un segmento de ruta o una URL completa.
- 2En «Codificar como», elige «Un valor (parámetro de consulta, segmento de ruta)», «Una URL completa (conserva : / ? # & = + ; , @ $)» o «RFC 3986 estricto (también ! ' ( ) *)».
- 3Haz clic en «Codificar», o haz clic en «Decodificar» para convertir de nuevo las secuencias %XX en caracteres.
- 4Toma la cadena codificada con «Copiar», u obtenla como encoded.txt con «Descargar».
Formatos y límites
- Modos de codificación
- encodeURIComponent; encodeURI conservando las secuencias %XX existentes; encodeURIComponent con ! ' ( ) * también escapados
- Decodificar
- decodeURIComponent, después de convertir + en espacio, salvo que desmarques esa casilla
- Conservados por «Una URL completa»
- Letras, dígitos, - _ . ! ~ * ' ( ) y ; / ? : @ & = + $ , #
- Errores
- Una secuencia de escape rota da «Codificación de URL no válida»; un carácter sustituto suelto no se puede codificar
Usos habituales
- Construir una cadena de consulta a mano
- Comprueba qué devuelve encodeURIComponent para un término de búsqueda que contiene & o # antes de concatenar ?q= y &page= en una llamada fetch o un comando curl.
- Depurar una firma rechazada
- Cuando se rechaza una solicitud OAuth 1.0a o AWS Signature Version 4, codifica cada parámetro con «RFC 3986 estricto» y compáralo con la cadena base de la firma que registra tu biblioteca.
- Hacer coincidir un redirect_uri
- Un proveedor OAuth compara redirect_uri carácter por carácter: codificar https://app.example.com/callback con «Un valor» da https%3A%2F%2Fapp.example.com%2Fcallback, la forma que va en la URL de autorización.
- Leer el cuerpo de un formulario en un registro
- Pega un cuerpo application/x-www-form-urlencoded como name=Ann+Lee&city=S%C3%A3o+Paulo con la casilla del + marcada, y «Decodificar» devuelve name=Ann Lee&city=São Paulo.
Qué herramienta elegir
- Codificador de URL: la página de herramientas de texto ejecuta el mismo código para enlaces cotidianos, términos de búsqueda y asuntos de correo electrónico, explicado sin nombres de funciones de JavaScript; compártela con alguien que no programe.
- Analizador de URL: para listar cada parámetro de consulta de una dirección completa con su valor decodificado, leído por la clase URL del navegador, en lugar de decodificar el texto como una sola cadena.
- Codificador HTML: cuando el texto va en una página HTML y no en una dirección: escribe & y < donde esta herramienta escribiría %26 y %3C.
Dónde se procesa tu texto
La codificación y la decodificación llaman a las propias funciones encodeURIComponent, encodeURI y decodeURIComponent de tu navegador dentro de esta página, así que las cadenas que pegas, incluidos tokens y claves, no se envían a nuestros servidores. Cuando falla «Codificar», «Decodificar» o una copia al portapapeles, recibimos el mensaje de error del navegador, el nombre de la herramienta y el nombre y la versión de tu navegador, sin el texto que lo causó.
Preguntas frecuentes
¿Debo usar encodeURIComponent o encodeURI?
Usa encodeURIComponent («Un valor») para un solo parámetro: escapa & = ? / # para que no puedan terminar el valor antes de tiempo. Usa encodeURI («Una URL completa») para una dirección completa que debe seguir funcionando; deja : / ? # & = y + sin cambios.
¿Por qué + se convierte en un espacio al decodificar?
La casilla «Decodificar el signo + como espacio (datos de formulario y cadenas de consulta)» está marcada de forma predeterminada, como corresponde a los datos application/x-www-form-urlencoded. Desmárcala cuando + sea un signo más real, como en a+b@x.com. «Un valor» y «RFC 3986 estricto» codifican + como %2B, así que su resultado nunca contiene un + sin codificar.
¿Los espacios se codifican como %20 o como +?
Como %20, en los tres modos. Ninguno escribe + para un espacio; esa convención pertenece a la codificación de formularios HTML, que esta herramienta lee al decodificar pero nunca produce.
¿Una URL ya codificada se codificará dos veces?
No con «Una URL completa»: las secuencias como %20 se conservan, así que nada se convierte en %2520. Sí con los otros dos modos, donde el propio % pasa a ser %25, lo cual es correcto cuando el carácter % forma parte del valor.
¿Qué modo necesito para una firma OAuth 1.0a o AWS Signature Version 4?
«RFC 3986 estricto». Ambas especificaciones solo dejan sin escapar las letras, los dígitos y - . _ ~, que es exactamente lo que da ese modo; encodeURIComponent por sí solo conserva ! ' ( ) * y la firma calculada no coincidiría.
¿Cómo obtengo + para los espacios, como los escribe URLSearchParams?
Esta herramienta siempre escribe %20. Codifica con «Un valor» y luego reemplaza cada %20 por + en el resultado; cualquier + que hubiera en tu texto ya es %2B, así que sigue siendo un signo más.
¿«Decodificar» acepta secuencias en minúsculas como %c3%a9?
Sí. decodeURIComponent lee los dígitos hexadecimales en mayúsculas o minúsculas, así que %c3%a9 y %C3%A9 dan los dos é. Las secuencias que añaden los codificadores siempre van en mayúsculas.
¿Por qué «Codificar» rechaza mi cadena con un mensaje de carácter roto?
encodeURIComponent y encodeURI lanzan un URIError ante un sustituto UTF-16 suelto, la mitad de un par que forma un emoji, que suele quedar al cortar una cadena a una longitud fija con slice o substring. Corrige la cadena donde se cortó; la página muestra ese mensaje en lugar de un resultado.
Consejos y trucos
- ✓Codifica primero cada valor de parámetro con «Un valor» y luego une tú mismo los pares name=value con &.
- ✓«Una URL completa» deja + tal cual: desmarca la casilla del + antes de decodificar un resultado así, o un + que contenga volverá como espacio.