Q-Kodierung für Header
Bringen Sie Akzente und Sonderzeichen sicher in Betreff oder Absendernamen: Aus Hello café wird =?UTF-8?Q?Hello_caf=C3=A9?=, und ein eingefügtes kodiertes Wort wird wieder lesbarer Text. Kostenlos in Ihrem Browser.
- Kostenlos
- Läuft in Ihrem Browser
- Ohne Anmeldung
- Ihre Daten bleiben auf Ihrem Gerät
Im Browser ausführen – kostenlos
Rechenbeispiel
- Text
- Hello café
- Berechnungsmodus
- Encode
- Ergebnis
- =?UTF-8?Q?Hello_caf=C3=A9?=
- Kodierung
- rfc2047-q
- Zeichensatz
- UTF-8
- Form
- Encoded word
Dieser Q-Kodierer für Header wandelt einfachen UTF-8-Text in die RFC-2047-Q-Form um, die in MIME-encoded-words für nicht-ASCII-E-Mail-Header verwendet wird, und dekodiert solche Zeichenketten zurück in lesbaren Text. Anders als Quoted-Printable im Body mappt die Header-Q-Kodierung jedes Leerzeichen auf einen Unterstrich, verbietet Soft-Line-Breaks innerhalb eines encoded-word und reserviert Fragezeichen sowie Unterstrich, damit Mail-Parser die Nutzlast nie mit dem Rahmen =? charset? Q? …? = verwechseln. Übliche Prüfungen: Hello café zu =? UTF-8? Q? Hello_caf=C3=A9? = kodieren und diese Zeichenkette zurück zur Originalphrase dekodieren.
Was RFC-2047-Q-Kodierung ist und was dieses Werkzeug zurückgibt
RFC 2047 definiert encoded-words, damit E-Mail-Header, die historisch vor allem ASCII erwarteten, weiterhin internationalen Text tragen können, ohne SMTP-Pfadregeln zu brechen. Die Q-Methode hält überwiegend lateinischen Text auf einem einfachen Terminal lesbar: sicheres druckbares ASCII erscheint unverändert, das Leerzeichen wird bevorzugt als Unterstrich geschrieben, und jedes andere Oktett wird zu einem Gleichheitszeichen gefolgt von zwei hexadezimalen Großbuchstaben-Ziffern. Gleichheitszeichen, Fragezeichen und Unterstrich müssen escaped werden, wenn sie als Daten vorkommen, weil sie in der Grammatik des encoded-word strukturell sind.
Soft-Line-Breaks aus Body-Quoted-Printable gelten hier nicht: ein encoded-word ist ein atomares Token und darf keine Soft-Break-Sequenz enthalten. Diese Seite folgt diesem Vertrag standardmäßig für UTF-8-Text: encode mappt Ihre Zeichenkette auf Charset-Bytes, emittiert Unterstrich für Leerzeichen und Gleich-Hex für unsichere Bytes und hüllt die Nutzlast optional als vollständiges encoded-word ein; decode akzeptiert entweder ein vollständiges encoded-word oder eine nackte Q-Nutzlast, expandiert Unterstrich und Gleich-Hex-Paare und lehnt unvollständige oder nicht-hexadezimale Sequenzen ab, statt zu raten.
Wenn Sie undurchsichtige binäre Packung für Header brauchen, bevorzugen Sie die B-Methode oder einen Base64-Helfer; diese Landing gilt dem lesbaren Q-Pfad, den Betreffzeilen und Anzeigenamen noch täglich nutzen.
Wo Ihnen die Q-Kodierung in E-Mail-Köpfen begegnet
Entwickler begegnen der RFC-2047-Q-Kodierung, wenn sie Subject-Zeilen prüfen, die mit Gleich-Fragezeichen UTF-8 Fragezeichen Q beginnen, internationale Anzeigenamen für From- und To-Header formulieren oder debuggen, warum ein Café-Akzent in einem Roh-Message-Dump zu Unterstrich und Gleich-Hex-Paaren wurde. Frontend- und Support-Teams dekodieren Q-Schnipsel bei Ticket-Untersuchungen, ohne Daten in Ad-hoc-Skripte zu kleben, die Unterstrich-für-Leerzeichen falsch handhaben oder Body-Quoted-Printable mit Header-Q-Regeln verwechseln. Backend-Dienste kodieren Konfigurationsbeispiele oder kurze mehrsprachige Zeichenketten, bevor sie sie in Header-Felder legen, in denen uneingeschränkter 8-Bit-Transport nicht garantiert ist.
Qualitätsingenieure erzeugen deterministische Encode- und Decode-Paare für Vertragstests, damit eine Mail-Bibliothek, die RFC-2047-Unterstützung behauptet, Hex-Großschreibung nicht still ändern, Leerzeichen unescaped lassen oder defekte Gleich-Sequenzen akzeptieren kann. Lehrende nutzen dasselbe Werkzeug, um den Unterschied zwischen Soft-Breaks von Body-Quoted-Printable und Header-Q-Atomen zu vermitteln, die auf einem Token bleiben müssen. Kombinieren Sie es mit MIME-Quoted-Printable-Helfern, wenn Sie an Bodies statt Headern arbeiten, und mit Base64-Helfern, wenn ein B-encoded-word die richtige Wahl für dichte binär wirkende Header-Daten ist.
Anwendungsfälle
Subject- und Anzeigenamen-Debugging
Kodieren oder dekodieren Sie RFC-2047-Q-kodierte Subject- und From-Anzeigenamen-Fragmente, damit Akzente und Leerzeichen dem entsprechen, was Mail-Clients anzeigen.
Header-Vorbereitung für Legacy-Gateways
Wandeln Sie einfachen UTF-8-Text in transport-sichere Q-kodierte Header-Tokens um, bevor Sie über eingeschränkte 7-Bit-Mail-Pfade senden.
Häufige Fragen
Was kostet der Q-Kodierer für Header?
Auf dieser Seite ist er in Ihrem Browser kostenlos.
Wie unterscheidet sich Header-Q-Kodierung von Body-Quoted-Printable?
Header-Q-Kodierung (RFC 2047) mappt Leerzeichen auf Unterstrich, verbietet Soft-Line-Breaks in einem encoded-word und behandelt =, ? und _ als speziell.
Was passiert bei einer fehlerhaften Escape-Sequenz?
Unvollständiges =XX, nicht-hexadezimale Ziffern nach = oder unzulässige Zeichen in einer Q-Nutzlast werden abgelehnt statt geraten.
Warum werden Leerzeichen zu Unterstrichen?
Ein kodiertes Wort muss im Header ein einziger Block ohne Lücken bleiben, deshalb schreibt das Q-Verfahren jedes Leerzeichen als Unterstrich. Beim Dekodieren wird daraus wieder ein Leerzeichen, und ein echter Unterstrich in Ihrem Text wird maskiert.
Was bedeutet =?UTF-8?Q? am Anfang?
Das ist die Hülle des kodierten Worts: zuerst der Zeichensatz, dann der Buchstabe Q für das Verfahren und danach der kodierte Text, abgeschlossen mit ?=. Das Werkzeug setzt sie beim Kodieren, außer Sie wollen nur den Inhalt.
Verwandte Tools
Für Entwickler — API-Zugang
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.
Endpunkt
Authentifizierung per Bearer-Token. Ein einziger POST stellt die Aufgabe in die Warteschlange; das Ergebnis erhalten Sie per Webhook oder über einen signierten Link.
Aufruf aus Ihrem Stack
curl -X POST https://api.kit.forhosting.com/enc/quoted-printable-q \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"Hello café"}'const res = await fetch("https://api.kit.forhosting.com/enc/quoted-printable-q", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "Hello café"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/enc/quoted-printable-q",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "Hello café"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/enc/quoted-printable-q", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"Hello café"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"Hello café"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/enc/quoted-printable-q", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Beispiel-Anfrage
{
"text": "Hello café"
}Beispiel-Antwort
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "enc.quoted_printable_q",
"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.
Preis
Der Preis steht auf der Seite – keine Tokens, keine Credits. Fehlgeschlagene Aufgaben werden nicht berechnet.
Fehler
| HTTP | Code | Bedeutung |
|---|---|---|
401 | unauthorized | Der API-Schlüssel fehlt oder ist ungültig – prüfen Sie den Authorization-Header (Bearer). |
402 | insufficient_balance | Ihr Guthaben reicht für diese Aufgabe nicht aus – Aufladungen verfallen nicht. |
404 | unknown_type | Unbekannter Aufgabentyp – prüfen Sie das Feld „type“ gegen den Katalog. |
429 | rate_limited | Zu viele Anfragen – warten Sie kurz; Polling ist mit 1 Anfrage pro Sekunde erlaubt. |
Technische Hinweise
Die Engine ist vollständig deterministisch: dieselbe Eingabe, derselbe mode, derselbe charset und dieselbe form ergeben stets dasselbe Ergebnis, ohne Netzwerkanrufe, Zufallssalze oder datumsabhängige Abkürzungen. Nutzen Sie es kostenlos im Browser zum Mail-Debugging und Header-Üben, oder rufen Sie die API zu $0.002 pro erfolgreicher Anfrage auf, wenn Pipelines reproduzierbare RFC-2047-Transformationen in CI und Backend-Diensten brauchen.
Was RFC-2047-Q-Kodierung ist und was dieses Werkzeug zurückgibt
Ein encoded-word hat die Form Gleich-Fragezeichen charset Fragezeichen encoding Fragezeichen payload Fragezeichen-Gleich, wobei der Encoding-Buchstabe Q für die quoted-printable-ähnliche Methode oder B für Base64 steht. Die JSON-Antwort enthält result für die transformierte Zeichenkette, mode mit echo von encode oder decode, encoding fest auf rfc2047-q, charset, form (encoded_word oder payload), das nackte payload-Feld für einfache Assertions sowie input_bytes und output_bytes, damit Sie Größen in Tests fixieren können. Es gibt keinen Streaming-Pfad und keine stille Reparatur von defektem Q-Text: entweder ist die Zeichenkette gültig oder die Anfrage scheitert mit invalid_input.
Wie text, mode, charset und form gelesen werden und Ergebnisse reproduzierbar bleiben
Charset ist standardmäßig UTF-8 und wird beim Encode in das encoded-word geschrieben; beim Dekodieren eines vollständigen encoded-word wird der charset aus dem Token selbst gelesen, und beim Dekodieren einer nackten Nutzlast wählt der charset-Parameter, wie zurückgewonnene Bytes zu Text werden. charset? Q? …? Encode akzeptiert Unicode-Zeichenketten, wandelt sie mit den Regeln des gewählten charset um und emittiert Q-Tokens mit hexadezimalen Großbuchstaben-Escapes und Unterstrich für jedes Leerzeichen. Nach der Byte-Rückgewinnung stellt eine fatale UTF-8-Dekodierung sicher, dass Binärmüll bei charset UTF-8 nicht zu Mojibake wird. Das bevorzugte Nutzlastfeld ist text, mit den Alias input, value und s, damit Formulare, Query-Strings und SDK-Clients denselben Vertrag ohne Umbenennen von Spalten nutzen. Mode ist standardmäßig encode und akzeptiert decode explizit; die Alias op, direction und action mappen auf denselben Schalter für Skripte, die diese Namen bereits verwenden. Form ist standardmäßig encoded_word, damit encode eine vollständige =? =-Zeichenkette liefert, bereit für ein Subject- oder From-Anzeigenamen-Fragment; setzen Sie form auf payload, wenn Sie nur den inneren Q-Körper für Unit-Tests oder zum selbstständigen Zusammensetzen mehrteiliger Header wollen. Decode verlangt eine wohlgeformte Q-Zeichenkette: ein einzelnes Gleich am Ende der Eingabe, ein Gleich gefolgt von nur einem Zeichen, oder ein Gleich gefolgt von nicht-hexadezimalen Ziffern scheitern mit einer klaren invalid_input-Meldung, die den fehlerhaften Escape benennt. Kombinieren Sie den kostenlosen Browser-Lauf auf dieser Seite mit der kostenpflichtigen API, wenn Sie dasselbe mathematische Ergebnis in einer automatisierten Pipeline brauchen, ohne RFC-2047-Tabellen selbst neu zu implementieren. Ungültige Eingaben liefern invalid_input und werden nicht berechnet, was Validierung günstig hält, während erfolgreiche Transformationen einen festen Item-Preis von $0.002 behalten.
Wo Q-Kodierung in E-Mail-Headern, MIME und Test-Fixtures passt
Auf dieser Seite läuft die Arbeit vollständig in Ihrem Browser; über die API kostet jede erfolgreiche Abfrage $0.002, fehlgeschlagene Validierung wird nicht berechnet, und nach der Antwort wird nichts gespeichert. Diese Aufteilung — freie interaktive Erkundung und eine bepreiste, ergebnisgleiche API — passt zum restlichen KIT-Tier-A-Katalog und lässt Sie von einer Unterrichtsdemo zu einer automatisierten Pipeline wechseln, ohne das kodierte Ergebnis zu ändern.
Integrationsbeispiele
Erzeugung von Mail-Header-Fixtures
Erzeugen Sie reproduzierbare encoded-words für Unit-Tests, Golden-Dateien und SMTP- oder IMAP-Integrationsprüfungen, die die Header-Form prüfen.
Technische Fragen
Welche modes und forms werden unterstützt?
mode=encode (Standard) wandelt Klartext in Q-Kodierung um; mode=decode wandelt eine Q-Zeichenkette zurück in Text. form=encoded_word (Standard beim Encode) hüllt als =?charset?Q?payload?= ein; form=payload liefert nur den inneren Q-Körper.
Ist das Ergebnis deterministisch?
Ja. Derselbe text, mode, charset und form erzeugen immer dasselbe Ergebnis — ohne Netzwerk, Zufall oder datumsabhängiges Verhalten.