ForHosting KIT · Utilidades de desarrollo

Escapador formato printf

«Progress: 50% complete» se convierte en «Progress: 50%% complete», y así printf imprime el porcentaje en lugar de tomarlo como una conversión. Los saltos de línea, tabuladores y barras invertidas se escriben como \n, \t y \\, y al desescapar vuelven a su forma. Gratis en su navegador.

  • Gratis
  • Funciona en su navegador
  • Sin registro
  • Sus datos no salen de su equipo
Úselo desde WebAPIEmailTelegramApp pronto
Si escribe
Texto
Progress: 50% complete next step
Modo de cálculo
Escape
Obtiene
Resultado
Progress: 50%% complete\nnext step
Longitud
34
Cantidad de porcentajes
1
Cantidad de escapes
1

Las cadenas de formato de la familia printf tratan un signo de porcentaje suelto como el inicio de una especificación de conversión, de modo que el texto libre que contenga un porcentaje—etiquetas de progreso, notas de divisa, plantillas de registro—fallará, se interpretará mal o consumirá los argumentos incorrectos a menos que cada porcentaje literal se duplique a %%. Al mismo tiempo, los cuerpos de formato suelen vivir dentro de literales de código fuente o archivos de configuración donde los saltos de línea, tabuladores y barras invertidas deben escribirse como escapes con barra. Este escapador de formato printf convierte texto plano en un cuerpo de formato seguro duplicando cada porcentaje y reescribiendo caracteres de control y barras como \\ , \n, \r, \t o \xHH, y revierte el mismo mapa cuando usted necesita recuperar los caracteres originales.

Cómo funcionan la duplicación del porcentaje y los escapes con barra en printf

En el printf de C, en iostreams de C++ que aceptan cadenas al estilo printf, en el formateo antiguo con % de Python y en muchas bibliotecas de registro, un carácter de porcentaje inicia una conversión: %s, %d, %.2f, %.*s y formas posicionales como %1$s empiezan todas con un solo porcentaje. Para imprimir un porcentaje literal debe escribir dos seguidos—%%—de modo que el formateador emita un % y no busque una letra de conversión.

Olvidar esa regla es un error clásico: un mensaje como "done 50%" se convierte en error de formato o roba el siguiente argumento. Esta capacidad aplica ambas capas de forma determinista. En modo escape recorre cada carácter, sustituye cada % por %%, convierte barras y los controles habituales en el escape portable más corto y deja el texto imprimible ordinario sin cambios.

En modo unescape pliega %% de nuevo a un solo porcentaje, expande las secuencias con barra admitidas, deja un porcentaje suelto (inicio de una conversión real) tal cual para poder decodificar plantillas mixtas, y rechaza barras finales, secuencias \x incompletas, dígitos no hex y escapes de letra desconocidos que serían indefinidos en una lectura estricta.

Dónde un escapador de formato printf aporta valor real

Los generadores de código que emiten plantillas de registro, catálogos de localización y mensajes de aserción para C, C++ o tiempos de ejecución compatibles con printf deben escapar cada campo de texto libre antes de escribirlo en una cadena de formato, o un solo porcentaje en un nombre de producto corromperá el formato y romperá la compilación o fallará en tiempo de ejecución.

Los equipos de firmware embebido y controladores de dispositivo pegan volcados de protocolo y mensajes de operador que ya contienen %% y secuencias \n y necesitan una ruta de unescape que falle de forma ruidosa ante \xHH truncados en lugar de inventar bytes. Los sitios de documentación y recetarios que muestran ejemplos de printf para copiar y pegar necesitan una ruta de escape fiable para que las muestras del usuario sigan siendo cuerpos de formato válidos.

Los pipelines de QA y CI comparan vectores dorados de escape y unescape entre hosts para que un porcentaje literal sea siempre %% y un salto de línea siempre \n. Los autores de material didáctico que enseñan la sintaxis de printf quieren ejemplos que mencionen la duplicación del porcentaje de forma explícita, que es la intención de búsqueda que captura esta página.

Si necesita literales de cadena C completos, escapes JavaScript, entidades HTML o codificación porcentual de URL, trátelos como intenciones y páginas distintas, no sobrecargue esta página del escapador de formato printf.

Cuerpos de formato printf seguros en código generado

Escape títulos, etiquetas de progreso y mensajes de operador de texto libre antes de escribirlos en cadenas de formato al estilo printf para que cada porcentaje literal pase a %%.

¿Por qué printf necesita que se dupliquen los signos de porcentaje?

Un solo % inicia una conversión como %s o %d. Escribir %% emite un porcentaje literal e impide que el formateador consuma argumentos o falle por una conversión ausente.

¿Puedo escapar y desescapar?

Sí. Establezca mode en escape (predeterminado) para codificar texto plano en un cuerpo seguro para printf, o mode en unescape para revertir la duplicación del porcentaje y los escapes con barra admitidos.

¿Qué ocurre con un % suelto al desescapar?

Se deja tal cual para que conversiones reales como %s permanezcan intactas.

¿Qué ocurre si una secuencia de escape está mal formada?

No se cobra nada por fallos de validación.

¿Cuánto cuesta?

La herramienta del navegador es gratuita y se ejecuta en local.

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.

POSThttps://api.kit.forhosting.com/enc/printf-escape

¿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, por email y desde Telegram — y pronto también desde nuestra app.

curl -X POST https://api.kit.forhosting.com/enc/printf-escape \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"text":"Progress: 50% complete\nnext: %s"}'
{
  "text": "Progress: 50% complete\nnext: %s"
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "enc.printf_escape",
  "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.

Por solicitud$0.002

Precio publicado — sin tokens ni créditos inventados. Una tarea fallida no se cobra.

HTTPCódigoSignificado
401unauthorizedAPI key ausente o inválida.
402insufficient_balanceEl saldo no cubre el precio de la tarea.
404unknown_typeEl tipo de tarea no existe.
429rate_limitedDemasiadas peticiones. Use el webhook en vez de sondear.

El desescape entiende %% y las formas con barra listadas, deja intactos los porcentajes sueltos que introducen conversiones reales como %s o %d, y falla de inmediato con invalid_input ante barras finales, escapes hex incompletos o letras de escape desconocidas en lugar de inventar basura a medio decodificar.

Cómo funcionan la duplicación del porcentaje y los escapes con barra en printf

Por separado, cuando la misma cadena se incrusta en código fuente o configuraciones similares a JSON, un salto de línea en bruto suele ser ilegal o incómodo, así que los autores escriben \n para un avance de línea, \t para un tabulador, \\ para una sola barra invertida y a veces \xHH para otros bytes de control. La ruta es trabajo puro de cadenas sin red, sin semillas aleatorias y sin marcas de tiempo de reloj, de modo que entradas idénticas siempre producen JSON idéntico. El precio de las llamadas API correctas es la base publicada de $0.002 por ítem, y los fallos de validación no consumen saldo prepago.

Qué envía usted y qué recibe a cambio

Envíe un campo de cadena obligatorio llamado text y un campo opcional mode. El modo escape convierte texto plano en un cuerpo de formato seguro para printf almacenado en result: cada porcentaje se duplica, las barras se convierten en \\ y los controles pasan a \n, \r, \t o \xHH. El modo unescape revierte esas secuencias y devuelve la cadena recuperada en result. Comprobaciones clásicas incluyen escapar una línea de progreso con un porcentaje suelto y un salto de línea, desescapar un cuerpo que usa %% y \t, hacer ida y vuelta de una cadena que ya contiene barras, y rechazar una cadena que termina en una barra suelta. Si se omite mode, escape es el valor predeterminado, de modo que un solo payload sigue siendo útil. La respuesta repite mode y el text original, e incluye result, la longitud de result, percent_count (cuántos porcentajes se duplicaron al escapar o se desdoblaron al desescapar, incluida la forma opcional \%) y escape_count (cuántas transformaciones al estilo barra se aplicaron). Text ausente, objetos que no son cadena, valores de mode no admitidos, cadenas más largas que el máximo documentado, barras finales, escapes hex incompletos, dígitos no hex tras \x y letras de escape desconocidas fallan con invalid_input y un mensaje claro en inglés. Los fallos de validación no consumen saldo prepago. El precio de la API en éxito es la base publicada de $0.002 por ítem.

Dónde un escapador de formato printf aporta valor real

Como esta capacidad es un motor de análisis puro, el precio de la API es la base publicada de $0.002 por ítem correcto y la validación fallida no consume saldo.

Decodificar plantillas de formato desde registros y fixtures

Desescape cuerpos al estilo printf que usan %% y escapes con barra de vuelta a texto legible, con fallos estrictos ante secuencias de escape incompletas o ilegales.

Vectores dorados para pruebas unitarias de cadenas de formato

Haga ida y vuelta de mensajes de muestra por escape y unescape en CI para que la duplicación del porcentaje y los escapes de control se mantengan estables entre hosts y cadenas de herramientas.

Ver la documentación completa del KIT →