ForHosting KIT · Entwickler-Tools

C-String-Escaper

Ein einzelnes Anführungszeichen, ein Backslash oder ein Zeilenumbruch zerstört einen C-String; das Werkzeug macht aus Hello "world", einem Zeilenumbruch und line 2 den Text Hello \"world\"\nline 2, bereit zum Einfügen in den Quelltext. Es löst Escapes auch wieder auf und stoppt bei fehlerhaften. 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
Hello "world" line 2
Berechnungsmodus
Escape
Anführungszeichen
Double
Erhalten Sie
Ergebnis
Hello \"world\"\nline 2
Länge
23
Literal
"Hello \"world\"\nline 2"

Freien Text in ein C- oder C++-Stringliteral einzubetten ist ein klassischer Stolperstein: ein doppeltes Anführungszeichen beendet den String, ein nackter Backslash schluckt das nächste Zeichen, ein roher Zeilenumbruch ist ein Syntaxfehler, und oktale oder hexadezimale Escapes, die in einem Log korrekt wirken, können beim Einfügen in den Quelltext abgeschnitten oder illegal sein. Dieser C-String-Escaper wandelt Klartext in einen sicheren Literal-Körper um (und in ein fertig quotiertes Literal zum Einfügen) und kehrt dieselbe Abbildung um, wenn Sie die Originalzeichen zurückbenötigen. Der Escape-Modus berücksichtigt den gewählten Anführungsstil—doppelt für gewöhnliche "..."-Strings oder einfach für Zeichenkonstanten—plus Backslashes, die üblichen Steuer-Escapes und optional Hex- oder Universalzeichennamen für Nicht-ASCII.

Wie C- und C++-String-Escapes in der Praxis funktionieren

Ein C- oder C++-Stringliteral ist eine Zeichenfolge in doppelten Anführungszeichen; Zeichenkonstanten nutzen einfache Anführungszeichen. Darin startet ein Backslash ein Escape: \\ wird zu einem Backslash, \" beendet sicher einen doppelt quotierten String, \' dasselbe für Zeichenkonstanten, und \? existiert, damit trigraph-sensible Toolchains ein Fragezeichen nicht falsch lesen.

Benannte Steuer-Escapes sind in C und C++ Standard: \n ist ein Zeilenvorschub, \r ein Wagenrücklauf, \t ein Tabulator, plus \a Alarm, \b Rückschritt, \f Seitenvorschub und \v Vertikaltab. Zwei numerische Formen zählen im Systemcode täglich: ein oktales Escape ist ein Backslash gefolgt von ein bis drei Oktalziffern (so ist \0 ein Nullbyte und \101 der Buchstabe A), und ein hexadezimales Escape ist \x gefolgt von einer oder mehreren Hex-Ziffern. C99 und C++ akzeptieren zudem Universalzeichennamen \uXXXX und \UXXXXXXXX für portablen Unicode-Quelltext.

Diese Fähigkeit wendet diese Regeln deterministisch an. Im Escape-Modus wandert sie jede Codeeinheit ab, ersetzt Sonderzeichen durch das kürzeste sichere Escape für den gewählten Anführungsstil, nutzt benannte Steuerzeichen wenn vorhanden, greift für andere C0-Bytes auf \xHH zurück und schreibt optional jedes Nicht-ASCII-Zeichen um, wenn hex true ist. Im Unescape-Modus parst sie dieselben Sequenzen zurück zu Zeichen und lehnt abschließende Backslashes, unvollständige \x oder Universalnamen, Nicht-Hex-Ziffern, Codepunkte außerhalb des zulässigen Bereichs und unbekannte Buchstaben-Escapes ab, die in einer strengen Lesart der Sprache undefiniertes Verhalten wären.

Was Sie senden und was Sie zurückerhalten

Senden Sie ein Pflicht-Stringfeld namens text sowie optionale Felder mode, quote und hex. Wenn mode weggelassen wird, ist escape der Standard, sodass eine einzelne Nutzlast weiterhin sinnvoll arbeitet. Mode escape wandelt Klartext in einen C/C++-Stringliteral-Körper in result um und liefert auch literal: denselben Körper in den gewählten Anführungszeichen zum Einfügen in den Quelltext.

Mode unescape kehrt Escape-Sequenzen in text um und liefert den wiederhergestellten Klartext in result ohne literal-Feld. Quote ist standardmäßig double; setzen Sie single, wenn das Ziel eine Zeichenkonstante oder ein einfach quotierter String in einem verwandten Dialekt ist—Escape erzwingt nur für diesen Delimiter ein Escape, sodass Apostrophe in doppelt quotierten Körpern roh bleiben können. Die Antwort spiegelt mode, quote, hex, den ursprünglichen text, result und die Länge von result.

Validierungsfehler belasten den vorab aufgeladenen KIT-Kontostand nicht. Klassische Prüfungen umfassen das Escapen einer Begrüßung mit eingebetteten Anführungszeichen und einem Zeilenumbruch, das Unescapen eines Körpers mit \xE9 für é oder \101 für A, Escape mit hex true damit Nicht-ASCII zu \x- oder \u-Formen wird, und die Ablehnung eines Strings der mit nacktem Backslash endet.

Wo ein C-String-Escaper seinen Nutzen zeigt

Teams für Embedded-Firmware und Gerätetreiber fügen Protokoll-Dumps ein, die bereits oktale und hexadezimale Escapes enthalten, und brauchen einen Unescape-Pfad, der bei abgeschnittenen \x-Sequenzen laut scheitert statt Bytes zu erfinden. Dokumentations- und Kochbuch-Seiten mit Copy-Paste-Beispielen brauchen einen zuverlässigen Escape-Pfad, damit nutzerseitige Samples gültige C-Stringliterale bleiben. QA- und CI-Pipelines vergleichen goldene Escape- und Unescape-Vektoren über Hosts, damit ein Zeilenumbruch unter doppelten Anführungszeichen stets \n ist und nie ein roher Umbruch der die Kompilierung sprengt.

Lehrende, die C-String-Syntax vermitteln, wollen Beispiele die Oktal und Hex ausdrücklich nennen—das ist die Suchintention, die diese Landing abdeckt. Wenn Sie JavaScript-String-Escapes, HTML-Entities oder URL-Prozentkodierung brauchen, behandeln Sie diese als getrennte Suchintentionen und Landings statt diese C-String-Escaper-Seite zu überladen.

Sichere Stringliterale in generiertem C/C++-Code

Escapen Sie Freitext-Titel, Meldungen und Konfigurationswerte, bevor Sie sie in doppelt quotierte C-Stringliterale oder einfach quotierte Zeichenkonstanten schreiben.

Oktale und Hex-Escapes aus Logs dekodieren

Unescapen Sie C-artige Stringkörper aus Firmware-Logs, Tickets und Golddateien zurück zu lesbarem Text, mit harten Fehlern bei unvollständigen oder illegalen Escapes.

ASCII-only-Hex-Umschreibung für Toolchains

Escapen Sie mit hex true, damit Nicht-ASCII-Zeichen zu \xHH-, \uXXXX- oder \UXXXXXXXX-Sequenzen werden, geeignet für ASCII-only-Repositories und strenge Compiler.

Was ist der Unterschied zwischen result und literal?

Result ist der escapte Körper ohne umgebende Anführungszeichen. Literal (nur Escape-Modus) umhüllt diesen Körper im gewählten Anführungsstil, damit Sie einen vollständigen C/C++-String in den Quelltext einfügen können.

Kann ich sowohl escapen als auch unescapen?

Ja. Setzen Sie mode auf escape (Standard), um Klartext zu kodieren, oder mode auf unescape, um Text aus einem C/C++-Stringliteral-Körper wiederherzustellen.

Welche Anführungsstile werden unterstützt?

Double (Standard) für gewöhnliche Stringliterale und single für den Stil von Zeichenkonstanten. Der Escape-Modus escapet nur den Delimiter, den Sie gewählt haben.

Wie wird der C-String-Escaper abgerechnet?

Die Browser-Umwandlung auf dieser Seite läuft ohne Gebühr auf Ihrem Gerät.

Was passiert bei einer fehlerhaften Escape-Sequenz?

Das Auflösen bricht sofort ab und nennt das Problem, statt zu raten. Abgelehnt werden ein Backslash am Ende, ein unvollständiges \x oder Universalzeichen, Ziffern, die nicht hexadezimal sind, Codepunkte außerhalb des Bereichs und unbekannte Buchstaben nach dem Backslash.

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/c-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/c-escape \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"text":"Hello \"world\"\nline 2"}'
{
  "text": "Hello \"world\"\nline 2"
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "enc.c_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.

Der Unescape-Modus versteht \n, \r, \t, \\, \", \', \?, \a, \b, \f, \v, Oktal mit ein bis drei Ziffern, \xHH, \uXXXX und \UXXXXXXXX und scheitert sofort mit invalid_input bei abschließenden Backslashes, unvollständigem Hex oder unbekannten Escape-Buchstaben, statt halb dekodierten Müll zu erfinden.

Wie C- und C++-String-Escapes in der Praxis funktionieren

Der Pfad ist reine Stringarbeit ohne Netz, ohne Zufallsseeds 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

Fehlender text, Nicht-String-Objekte, nicht unterstützte mode- oder quote-Werte, Werte die sich nicht als Boolean für hex lesen lassen, Strings länger als das dokumentierte Maximum, abschließende Backslashes, unvollständige Hex-Escapes, unvollständige Universalzeichennamen, Nicht-Hex-Ziffern, illegale Codepunkte 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 C-String-Escaper seinen Nutzen zeigt

Da diese Fähigkeit ein reiner Parse-Motor ist, gilt als API-Preis die veröffentlichte Basis von $0.002 pro erfolgreichem Element und fehlgeschlagene Validierung belastet den vorab aufgeladenen KIT-Kontostand nicht.

Was geschieht bei einer fehlerhaften Escape-Sequenz?

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

Vollständige KIT-Dokumentation lesen →