ForHosting KIT · Strumenti per sviluppatori

Escape formato printf

«Progress: 50% complete» diventa «Progress: 50%% complete», così printf stampa il segno di percentuale invece di leggerlo come una conversione. A capo, tabulazioni e barre rovesciate diventano \n, \t e \\, e l'unescape li riporta com'erano. Gratis nel suo browser.

  • Gratis
  • Funziona nel suo browser
  • Senza registrazione
  • I suoi dati restano sul dispositivo
Usalo da WebAPIEmailTelegramApp presto
Se inserisce
Testo
Progress: 50% complete next step
Modalità di calcolo
Escape
Ottiene
Risultato
Progress: 50%% complete\nnext step
Lunghezza
34
Numero di percentuali
1
Numero di escape
1

Le stringhe di formato della famiglia printf trattano un segno di percentuale isolato come l'inizio di una specifica di conversione, quindi testo libero che contiene una percentuale—etichette di avanzamento, note di valuta, modelli di log—andrà in errore, sarà analizzato male o consumerà gli argomenti sbagliati a meno che ogni percentuale letterale non sia raddoppiata in %%. Allo stesso tempo, i corpi di formato spesso vivono dentro letterali di codice sorgente o file di configurazione dove newline, tabulazioni e backslash devono essere scritti come escape con barra. Questo escape di formato printf trasforma testo semplice in un corpo di formato sicuro raddoppiando ogni percentuale e riscrivendo caratteri di controllo e barre come \\ , \n, \r, \t o \xHH, e inverte la stessa mappa quando Lei deve recuperare i caratteri originali.

Come funzionano il raddoppio della percentuale e gli escape con backslash in printf

Nel printf di C, negli iostream C++ che accettano stringhe in stile printf, nel vecchio formattazione % di Python e in molte librerie di logging, un carattere percentuale inizia una conversione: %s, %d, %.2f, %.*s e forme posizionali come %1$s iniziano tutte con un solo percentuale. Per stampare una percentuale letterale Lei deve scriverne due di seguito—%%—così il formattatore emette un % e non cerca una lettera di conversione. Dimenticare quella regola è un bug classico: un messaggio come "done 50%" diventa un errore di formato o ruba l'argomento successivo.

Questa capacità applica entrambi i livelli in modo deterministico. In modalità escape scorre ogni carattere, sostituisce ogni % con %%, trasforma barre e i controlli usuali nell'escape portabile più corto e lascia invariato il testo stampabile ordinario. In modalità unescape ripiega %% in un solo percentuale, espande le sequenze supportate, lascia un percentuale isolato (inizio di una conversione reale) così com'è per decodificare modelli misti, e rifiuta backslash finali, sequenze \x incomplete, cifre non hex e escape di lettere sconosciute che sarebbero indefiniti in una lettura rigorosa.

Cosa invia Lei e cosa riceve indietro

Invii un campo stringa obbligatorio chiamato text e un campo opzionale mode. La modalità escape converte testo semplice in un corpo di formato sicuro per printf memorizzato in result: ogni percentuale è raddoppiata, i backslash diventano \\ e i controlli diventano \n, \r, \t o \xHH. La modalità unescape inverte quelle sequenze e restituisce la stringa recuperata in result.

I fallimenti di validazione non consumano saldo prepagato. Controlli classici includono l'escape di una riga di avanzamento con percentuale isolata e newline, l'unescape di un corpo che usa %% e \t, l'andata e ritorno di una stringa che contiene già backslash, e il rifiuto di una stringa che termina con un backslash nudo.

Dove un escape di formato printf merita il suo posto

I generatori di codice che emettono modelli di log, cataloghi di localizzazione e messaggi di assert per C, C++ o runtime compatibili con printf devono fare l'escape di ogni campo di testo libero prima di scriverlo in una stringa di formato, o un singolo percentuale in un nome prodotto corromperà il formato e romperà la build o andrà in crash a runtime.

I team di firmware embedded e driver di dispositivo incollano dump di protocollo e messaggi operatore che contengono già %% e sequenze \n e hanno bisogno di un percorso di unescape che fallisca in modo rumoroso su \xHH troncati invece di inventare byte. I siti di documentazione e ricettari che mostrano esempi printf da copiare e incollare necessitano di un percorso di escape affidabile affinché i campioni dell'utente restino corpi di formato validi.

Le pipeline QA e CI confrontano vettori dorati di escape e unescape tra host così un percentuale letterale è sempre %% e una newline è sempre \n. Gli autori di curricula che insegnano la sintassi printf vogliono esempi che menzionino esplicitamente il raddoppio della percentuale, che è l'intento di ricerca che questa landing cattura. Se Lei ha bisogno di letterali stringa C completi, escape JavaScript, entità HTML o percent-encoding URL, li tratti come intenti e landing separati piuttosto che sovraccaricare questa pagina dell'escape di formato printf.

Corpi di formato printf sicuri nel codice generato

Faccia l'escape di titoli, etichette di avanzamento e messaggi operatore in testo libero prima di scriverli in stringhe di formato in stile printf così ogni percentuale letterale diventa %%.

Vettori dorati per test unitari di stringhe di formato

Faccia l'andata e ritorno di messaggi di esempio tramite escape e unescape in CI così il raddoppio della percentuale e gli escape di controllo restano stabili tra host e toolchain.

Perché printf richiede di raddoppiare i segni di percentuale?

Un singolo % inizia una conversione come %s o %d. Scrivere %% emette una percentuale letterale e impedisce al formattatore di consumare argomenti o fallire per una conversione mancante.

Posso fare sia escape sia unescape?

Sì. Imposti mode su escape (predefinito) per codificare testo semplice in un corpo sicuro per printf, o mode su unescape per invertire il raddoppio della percentuale e gli escape con backslash supportati.

Cosa succede a un % isolato in unescape?

Viene lasciato così com'è affinché conversioni reali come %s restino intatte.

Cosa succede se una sequenza di escape è malformata?

Nulla viene addebitato per i fallimenti di validazione.

Quanto costa?

Lo strumento del browser è gratuito e gira in locale.

Tutto quello che vedi in questa pagina è disponibile anche via API. Questa sezione è per i team che vogliono integrarlo nei propri sistemi; chi non ne ha bisogno può semplicemente usare lo strumento qui sopra.

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

Autenticazione con Bearer token: un POST mette in coda l'attività e il risultato arriva via webhook o link firmato.

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"
  }
}

L'API è asincrona: ricevi subito un task_id e puoi fare polling fino a 1 richiesta al secondo.

per richiesta$0.002

Prezzo pubblicato, senza token né crediti. Se l'attività fallisce, non paghi.

HTTPCodiceSignificato
401unauthorizedChiave API mancante o non valida: controlla l'header Authorization.
402insufficient_balanceCredito esaurito: ricarica per continuare a eseguire attività.
404unknown_typeTipo di attività sconosciuto: controlla il campo type della richiesta.
429rate_limitedTroppe richieste in poco tempo: rallenta e riprova tra qualche secondo.

L'unescape comprende %% e le forme con barra elencate, lascia intatti i percentuali isolati che introducono conversioni reali come %s o %d, e fallisce subito con invalid_input su backslash finali, escape hex incompleti o lettere di escape sconosciute invece di inventare spazzatura semidecodificata.

Come funzionano il raddoppio della percentuale e gli escape con backslash in printf

Separatamente, quando la stessa stringa è incorporata in codice sorgente o config simili a JSON, una newline grezza è spesso illegale o scomoda, quindi gli autori scrivono \n per un avanzamento riga, \t per una tabulazione, \\ per un singolo backslash e talvolta \xHH per altri byte di controllo. Il percorso è lavoro puro di stringhe senza rete, senza semi casuali e senza timestamp di orologio, così ingressi identici producono sempre JSON identico. Il prezzo delle chiamate API riuscite è la base pubblicata di $0.002 per elemento, e i fallimenti di validazione non consumano saldo prepagato.

Cosa invia Lei e cosa riceve indietro

Quando mode è omesso, escape è il predefinito, così un singolo payload resta utile. La risposta ripete mode e il text originale, poi include result, la lunghezza di result, percent_count (quanti segni di percentuale sono stati raddoppiati in escape o ridotti in unescape, inclusa la forma opzionale \%) e escape_count (quante trasformazioni in stile backslash sono state applicate). Text assente, oggetti non stringa, valori di mode non supportati, stringhe più lunghe del massimo documentato, backslash finali, escape hex incompleti, cifre non hex dopo \x e lettere di escape sconosciute falliscono con invalid_input e un messaggio chiaro in inglese. Il prezzo API in caso di successo è la base pubblicata di $0.002 per elemento.

Dove un escape di formato printf merita il suo posto

Poiché questa capacità è un motore di parse puro, il prezzo API è la base pubblicata di $0.002 per elemento riuscito e la validazione fallita non consuma saldo.

Decodificare modelli di formato da log e fixture

Faccia l'unescape di corpi in stile printf che usano %% e escape con backslash di nuovo in testo leggibile, con fallimenti rigidi su sequenze incomplete o illegali.

Leggi la documentazione completa del KIT →