Codificar y decodificar una URL
Un simple espacio sin escapar o un ampersand mal colocado en una URL puede romper silenciosamente una redirección, un píxel de seguimiento o toda una suite de pruebas de integración. Esta API para codificar URL aplica codificación porcentual y decodificación exactamente como lo exige el estándar RFC 3986, de modo que los parámetros de consulta, los segmentos de ruta y los datos de formularios lleguen intactos a su destino.
Ejecutar — gratis
Corre en su navegador. Gratis y sin límite: sus datos no salen de esta página.
Por qué la codificación porcentual sigue causando problemas
Cada lenguaje trae su propia función de codificación integrada, pero los desarrolladores siguen tropezando con lo mismo: encodeURIComponent en JavaScript trata los espacios distinto que urlencode en PHP, y ninguno de los dos coincide en lo que realmente exige una cadena de consulta frente a un segmento de ruta. Caracteres reservados como el signo más y la virgulilla terminan manejados de forma inconsistente entre entornos. Nuestro endpoint dev.url_encode elimina esa ambigüedad aplicando un único conjunto de reglas determinista, de modo que la misma entrada siempre produce la misma salida sin importar desde qué stack se llame.
Qué hace exactamente el endpoint
POST /dev/url-encode recibe una cadena y una dirección, codificar o decodificar, y devuelve de inmediato un task_id porque el trabajo se ejecuta de forma asíncrona. Internamente recorre la entrada byte a byte, convirtiendo los caracteres inseguros o reservados en su forma %XX de codificación porcentual al codificar, o resolviendo las secuencias %XX de vuelta a texto legible al decodificar. Los caracteres UTF-8 multibyte, comunes en nombres, direcciones y contenido en varios idiomas, se procesan de forma nativa en lugar de convertirse en signos de interrogación.
Un breve apunte sobre el origen de este formato
La codificación porcentual es anterior a la mayoría de los frameworks web actuales; se formalizó para que las URL, diseñadas originalmente para un conjunto de caracteres ASCII reducido, pudieran transportar de forma segura bytes arbitrarios como espacios, ampersands y escrituras no latinas. Ese origen explica por qué las reglas de codificación se sienten inconsistentes hoy: distintas especificaciones, la sintaxis de URI frente al envío de formularios HTML, divergieron durante décadas, y la mayoría de las bibliotecas solo implementan bien una de ellas.
Dónde encaja dentro de un flujo de trabajo
Los equipos llaman a este endpoint antes de construir URL de webhooks salientes, al normalizar enlaces enviados por usuarios para almacenarlos, o al limpiar cadenas de consulta mal formadas extraídas de archivos de registro y exportaciones de terceros. Como los resultados llegan mediante un webhook firmado o un enlace firmado válido por 24 horas, se puede integrar en un proceso por lotes que procese miles de URL sin mantener una conexión abierta ni consultar el estado una por una.
Confiabilidad sin conjeturas
Cada solicitud se cobra solo si tiene éxito; una tarea fallida se reintenta automáticamente hasta tres veces y nunca se cobra si sigue fallando, así que no hay que preocuparse por casos extremos de codificación provocados por secuencias de bytes poco comunes. A $0.002 por solicitud, procesar un conjunto completo de URL tiene un costo previsible y publicado, sin niveles que negociar ni prueba gratuita que expire.
Qué puede hacer con ella
Construir URL de webhooks salientes
Codifique parámetros de consulta dinámicos, como correos de clientes o etiquetas de texto libre, antes de añadirlos a una URL de retorno para que el servidor receptor los interprete correctamente.
Limpiar enlaces extraídos o importados
Decodifique URL codificadas dos veces provenientes de exportaciones CSV o bases de datos antiguas para recuperar la dirección original y legible antes de volver a guardarla.
Normalizar formularios enviados por usuarios
Aplique codificación porcentual a términos de búsqueda o nombres de archivo ingresados por usuarios para incrustarlos de forma segura en enlaces de redirección y etiquetas de analítica.
Corregir datos de registros mal formados
Decodifique URI de solicitudes capturadas en registros de servidor para que sean legibles durante la investigación de incidentes o el análisis de tráfico.
Preguntas frecuentes
¿Cuál es la diferencia entre codificar y decodificar una URL?
Codificar convierte caracteres inseguros, como espacios, ampersands y letras con tilde, en secuencias %XX para que la URL se transmita de forma segura; decodificar revierte ese proceso a texto legible. Esta API soporta ambas direcciones en un solo endpoint.
¿Existe un plan gratuito para la API de codificación de URL?
La herramienta de arriba es gratis en su navegador. La API es de pago: cada llamada se descuenta de su saldo prepago de ForHosting KIT — se recarga desde $10.00 (no caduca), se paga el precio publicado de cada solicitud, y una llamada sin saldo devuelve HTTP 402. Sin suscripción, sin tokens, y una tarea fallida no se cobra.
¿Cuánto cuesta cada solicitud?
Cada llamada a POST /dev/url-encode cuesta $0.002, y se cobra únicamente cuando la tarea se completa con éxito.
¿Maneja caracteres no latinos como chino o árabe?
Sí. El endpoint procesa correctamente las secuencias UTF-8 multibyte y produce una codificación porcentual válida para cualquier escritura, sin descartar ni corromper caracteres.
¿Cómo recibo el resultado?
Cada tarea entrega su resultado mediante un webhook firmado, el método recomendado para flujos automatizados, o un enlace firmado válido por 24 horas si prefiere consultarlo manualmente.
¿Qué pasa si mi solicitud falla?
La tarea se reintenta automáticamente hasta tres veces. Si sigue fallando, recibe un error claro y no se le cobra.
¿Puedo codificar una URL completa o solo parámetros individuales?
Puede enviar tanto una URL completa como un valor individual, como un parámetro de consulta; el endpoint codifica exactamente la cadena que envíe sin asumir su estructura.
¿Por qué no usar simplemente la función de codificación integrada de mi lenguaje?
Las funciones integradas varían entre lenguajes en cómo tratan espacios, signos más y caracteres reservados, lo que genera errores sutiles en sistemas con stacks mixtos; este endpoint aplica un único conjunto de reglas consistente sin importar quién lo llame.
Para desarrolladores — acceso por API
Todo lo de esta página está disponible por programación. Esta sección es para equipos que quieren integrarlo en sus sistemas; el resto puede usar la herramienta de arriba sin más.
Endpoint de API
¿Prefiere automatizarlo? Un POST autenticado crea la tarea; el resultado llega por webhook o enlace firmado. La misma capacidad también se ejecuta aquí en la web, y pronto desde nuestra app, el email y Telegram.
Llámela desde su stack
curl -X POST https://api.kit.forhosting.com/dev/url-encode \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"items":["valor-1","valor-2"]}'const res = await fetch("https://api.kit.forhosting.com/dev/url-encode", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"items": [
"valor-1",
"valor-2"
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/dev/url-encode",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"items": [
"valor-1",
"valor-2"
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/dev/url-encode", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"items":["valor-1","valor-2"]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"items":["valor-1","valor-2"]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/dev/url-encode", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Ejemplo de solicitud
{
"items": [
"valor-1",
"valor-2"
]
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "dev.url_encode",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}La API es asíncrona: la llamada devuelve un task_id al instante y el resultado llega por webhook. El polling está limitado a 1 req/s por tarea.
Precio
Precio publicado — sin tokens ni créditos inventados. Una tarea fallida no se cobra.
Errores
| HTTP | Código | Significado |
|---|---|---|
401 | unauthorized | API key ausente o inválida. |
402 | insufficient_balance | El saldo no cubre el precio de la tarea. |
404 | unknown_type | El tipo de tarea no existe. |
429 | rate_limited | Demasiadas peticiones. Use el webhook en vez de sondear. |