ForHosting KIT · Entwickler-Tools

Printf-Format escapen

Aus „Progress: 50% complete“ wird „Progress: 50%% complete“, damit printf das Prozentzeichen ausgibt, statt es als Umwandlung zu lesen. Zeilenumbrüche, Tabs und Backslashes werden zu \n, \t und \\, und das Unescape macht es rückgängig. Kostenlos in Ihrem Browser.

  • Kostenlos
  • Läuft in Ihrem Browser
  • Ohne Anmeldung
  • Ihre Daten bleiben auf Ihrem Gerät
Nutzen Sie es über WebAPIE-MailTelegramApp bald
Wenn Sie eingeben
Text
Progress: 50% complete next step
Berechnungsmodus
Escape
Erhalten Sie
Ergebnis
Progress: 50%% complete\nnext step
Länge
34
Anzahl der Prozentzeichen
1
Anzahl der Escapes
1

Formatstrings der printf-Familie behandeln ein einzelnes Prozentzeichen als Beginn einer Konversionsspezifikation, sodass freier Text mit einem Prozent—Fortschrittslabel, Währungshinweise, Log-Vorlagen—abstürzt, falsch geparst wird oder die falschen Argumente verbraucht, sofern nicht jedes literale Prozent zu %% verdoppelt wird. Gleichzeitig liegen Formatkörper oft in Quellcode-Stringliteralen oder Konfigurationsdateien, in denen Zeilenumbrüche, Tabs und Backslashes als Backslash-Escapes geschrieben werden müssen. Dieser Printf-Format-Escaper wandelt Klartext in einen sicheren Formatkörper um, indem er jedes Prozent verdoppelt und Steuerzeichen sowie Backslashes als \\ , \n, \r, \t oder \xHH umschreibt, und kehrt dieselbe Abbildung um, wenn Sie die Originalzeichen zurückbenötigen.

So funktionieren Prozentverdopplung und Backslash-Escapes in printf

In C-printf, in C++-iostreams mit printf-ähnlichen Formatstrings, in Pythons alter %-Formatierung und in vielen Logging-Bibliotheken beginnt ein Prozentzeichen eine Konversion: %s, %d, %.2f, %.*s und positionale Formen wie %1$s starten alle mit einem einzelnen Prozent. Um ein literales Prozent zu drucken, müssen Sie zwei hintereinander schreiben—%%—damit der Formatter ein % ausgibt und nicht nach einem Konversionsbuchstaben sucht. Diese Regel zu vergessen ist ein Klassiker: eine Meldung wie "done 50%" wird zum Formatfehler oder stiehlt das nächste Argument.

Im Escape-Modus läuft sie über jedes Zeichen, ersetzt jedes % durch %%, wandelt Backslashes und übliche Steuerzeichen in das kürzeste portable Escape um und lässt gewöhnlichen druckbaren Text unverändert. Im Unescape-Modus faltet sie %% zurück zu einem einzelnen Prozent, expandiert die unterstützten Backslash-Sequenzen, lässt ein einzelnes Prozent (Start einer echten Konversion) unverändert, damit gemischte Formatvorlagen dekodiert werden können, und lehnt abschließende Backslashes, unvollständige \x-Sequenzen, Nicht-Hex-Ziffern und unbekannte Buchstaben-Escapes ab, die bei strenger Lesart undefiniert wären.

Was Sie senden und was Sie zurückerhalten

Senden Sie ein Pflicht-Stringfeld namens text und ein optionales Feld mode. Wenn mode weggelassen wird, ist escape der Standard, sodass eine einzelne Nutzlast weiterhin sinnvoll arbeitet. Modus escape wandelt Klartext in einen printf-sicheren Formatkörper in result um: jedes Prozent wird verdoppelt, Backslashes werden zu \\ und Steuerzeichen zu \n, \r, \t oder \xHH.

Modus unescape kehrt diese Sequenzen um und liefert die wiederhergestellte Zeichenkette in result. Validierungsfehler belasten den vorab aufgeladenen KIT-Kontostand nicht. Klassische Checks umfassen das Escapen einer Fortschrittszeile mit bloßer Prozent und Zeilenumbruch, das Unescapen eines Körpers mit %% und \t, den Roundtrip einer Zeichenkette, die bereits Backslashes enthält, und das Ablehnen einer Zeichenkette, die mit einem nackten Backslash endet.

Wo ein Printf-Format-Escaper seinen Nutzen bringt

Codegeneratoren, die Log-Vorlagen, Lokalisierungskataloge und Assert-Meldungen für C, C++ oder printf-kompatible Laufzeiten erzeugen, müssen jedes Freitextfeld escapen, bevor es in einen Formatstring geschrieben wird, sonst zerstört ein einziges Prozent in einem Produktnamen das Format und bricht den Build oder stürzt zur Laufzeit ab. Teams für Embedded-Firmware und Gerätetreiber fügen Protokoll-Dumps und Bedienermeldungen ein, die bereits %% und \n-Sequenzen enthalten, und brauchen einen Unescape-Pfad, der bei abgeschnittenen \xHH laut scheitert statt Bytes zu erfinden. Dokumentations- und Rezeptseiten mit Copy-Paste-printf-Beispielen brauchen einen zuverlässigen Escape-Pfad, damit nutzerseitige Proben gültige Formatkörper bleiben.

Curriculum-Autoren, die printf-Syntax lehren, wollen Beispiele, die Prozentverdopplung explizit nennen—genau die Suchintention, die diese Landingseite abdeckt. Wenn Sie vollständige C-Stringliterale, JavaScript-Escapes, HTML-Entitäten oder URL-Prozentkodierung brauchen, behandeln Sie diese als getrennte Suchintentionen und Landings und überladen Sie diese Printf-Format-Escaper-Seite nicht.

Sichere printf-Formatkörper in generiertem Code

Escapen Sie Freititel, Fortschrittslabel und Bedienermeldungen, bevor Sie sie in printf-ähnliche Formatstrings schreiben, sodass jedes literale Prozent zu %% wird.

Warum muss printf Prozentzeichen verdoppeln?

Ein einzelnes % startet eine Konversion wie %s oder %d. %% gibt ein literales Prozent aus und verhindert, dass der Formatter Argumente verbraucht oder wegen fehlender Konversion fehlschlägt.

Kann ich sowohl escapen als auch unescapen?

Ja. Setzen Sie mode auf escape (Standard), um Klartext in einen printf-sicheren Körper zu kodieren, oder mode auf unescape, um Prozentverdopplung und unterstützte Backslash-Escapes umzukehren.

Was geschieht mit einem einzelnen % beim Unescape?

Es bleibt unverändert, damit echte Konversionen wie %s intakt bleiben.

Was passiert bei einer fehlerhaften Escape-Folge?

Das Unescape bricht mit einer klaren Meldung ab, statt zu raten. Ein Backslash am Ende, eine unvollständige \x-Folge, eine Ziffer, die nicht hexadezimal ist, oder ein unbekannter Buchstabe nach dem Backslash werden abgelehnt, damit keine halb dekodierten Bytes entstehen.

Welche Zeichen werden als Backslash-Escape geschrieben?

Der Backslash selbst wird zu \\, ein Zeilenumbruch zu \n, ein Wagenrücklauf zu \r und ein Tab zu \t. Andere Steuerzeichen erscheinen als \x mit zwei Hexziffern, gewöhnlicher druckbarer Text bleibt unverändert.

Alles auf dieser Seite ist auch per API verfügbar. Dieser Abschnitt richtet sich an Teams, die es in ihre eigenen Systeme einbinden möchten; alle anderen nutzen einfach das Tool oben.

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

Authentifizierung per Bearer-Token. Ein einziger POST stellt die Aufgabe in die Warteschlange; das Ergebnis erhalten Sie per Webhook oder über einen signierten Link.

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

Die API arbeitet asynchron: Sie erhalten sofort eine task_id. Polling ist mit 1 Anfrage pro Sekunde erlaubt.

pro Anfrage$0.002

Der Preis steht auf der Seite – keine Tokens, keine Credits. Fehlgeschlagene Aufgaben werden nicht berechnet.

HTTPCodeBedeutung
401unauthorizedDer API-Schlüssel fehlt oder ist ungültig – prüfen Sie den Authorization-Header (Bearer).
402insufficient_balanceIhr Guthaben reicht für diese Aufgabe nicht aus – Aufladungen verfallen nicht.
404unknown_typeUnbekannter Aufgabentyp – prüfen Sie das Feld „type“ gegen den Katalog.
429rate_limitedZu viele Anfragen – warten Sie kurz; Polling ist mit 1 Anfrage pro Sekunde erlaubt.

Unescape versteht %% und die aufgeführten Backslash-Formen, lässt einzelne Prozentzeichen, die echte Konversionen wie %s oder %d einleiten, unangetastet und scheitert sofort mit invalid_input bei abschließenden Backslashes, unvollständigen Hex-Escapes oder unbekannten Escape-Buchstaben, statt halb dekodierten Müll zu erfinden.

So funktionieren Prozentverdopplung und Backslash-Escapes in printf

Separat: Wenn dieselbe Zeichenkette in Quellcode oder JSON-ähnliche Configs eingebettet wird, ist ein roher Zeilenumbruch oft illegal oder unhandlich, daher schreiben Autoren \n für einen Zeilenvorschub, \t für einen Tab, \\ für einen einzelnen Backslash und manchmal \xHH für andere Steuerbytes. Diese Fähigkeit wendet beide Schichten deterministisch an. Der Pfad ist reine String-Arbeit ohne Netzwerk, ohne Zufallssamen und ohne Wanduhr-Zeitstempel, sodass identische Eingaben stets identisches JSON erzeugen. Der Preis erfolgreicher API-Aufrufe ist die veröffentlichte Basis von $0.002 pro Element, und Validierungsfehler belasten den vorab aufgeladenen KIT-Kontostand nicht.

Was Sie senden und was Sie zurückerhalten

Die Antwort spiegelt mode und den originalen text wider und enthält dann result, die Länge von result, percent_count (wie viele Prozentzeichen beim Escape verdoppelt oder beim Unescape entdoppelt wurden, einschließlich der optionalen Form \%) und escape_count (wie viele Backslash-Transformationen angewendet wurden). Fehlendes text, Nicht-String-Objekte, nicht unterstützte mode-Werte, Zeichenketten länger als das dokumentierte Maximum, abschließende Backslashes, unvollständige Hex-Escapes, Nicht-Hex-Ziffern nach \x und unbekannte Escape-Buchstaben scheitern mit invalid_input und einer klaren englischen Meldung. Der API-Preis bei Erfolg ist die veröffentlichte Basis von $0.002 pro Element.

Wo ein Printf-Format-Escaper seinen Nutzen bringt

Weil diese Fähigkeit eine reine Parse-Engine ist, beträgt der API-Preis die veröffentlichte Basis von $0.002 pro erfolgreichem Element und fehlgeschlagene Validierung belastet den vorab aufgeladenen KIT-Kontostand nicht.

Formatvorlagen aus Logs und Fixtures dekodieren

Unescapen Sie printf-ähnliche Körper mit %% und Backslash-Escapes zurück zu lesbarem Text, mit harten Fehlern bei unvollständigen oder illegalen Escape-Sequenzen.

Golden-Vektoren für Formatstring-Unit-Tests

Führen Sie Beispielmeldungen in CI durch Escape und Unescape im Roundtrip, damit Prozentverdopplung und Steuer-Escapes über Hosts und Toolchains stabil bleiben.

Was geschieht bei einer fehlerhaften Escape-Sequenz?

Unescape scheitert mit invalid_input und nennt Position und schlechte Sequenz (zum Beispiel abschließender Backslash, unvollständiges \xHH oder unbekannter Escape-Buchstabe). Validierungsfehler werden nicht berechnet.

Was kostet es?

Das Browser-Tool ist kostenlos und läuft lokal. API-Anfragen nutzen vorausbezahltes KIT-Guthaben zu $0.002 pro erfolgreichem Element; ungültige Eingabe wird nicht berechnet.

Vollständige KIT-Dokumentation lesen →