Codificatore Q intestazioni
Inserisca accenti nell'oggetto o nel nome del mittente di un'email senza rompere nulla: Hello café diventa =?UTF-8?Q?Hello_caf=C3=A9?=, e una parola codificata incollata torna testo leggibile. Gratis nel suo browser.
- Gratis
- Funziona nel suo browser
- Senza registrazione
- I suoi dati restano sul dispositivo
Esegui gratis nel browser
Esempio risolto
- Testo
- Hello café
- Modalità di calcolo
- Encode
- Risultato
- =?UTF-8?Q?Hello_caf=C3=A9?=
- Codifica
- rfc2047-q
- Set di caratteri
- UTF-8
- Forma
- Encoded word
Questo codificatore Q per intestazioni converte testo UTF-8 semplice nella forma Q di RFC 2047 usata nelle encoded-word MIME delle intestazioni e-mail non ASCII, e decodifica tali stringhe di nuovo in testo leggibile. charset? Q? …? Controlli comuni: codificare Hello café in =? UTF-8? Q? Hello_caf=C3=A9? = e decodificare quella stringa nella frase originale.
Cos'è la codifica Q di RFC 2047 e cosa restituisce questo strumento
RFC 2047 definisce le encoded-word affinché le intestazioni e-mail che storicamente si aspettavano soprattutto ASCII possano ancora trasportare testo internazionale senza rompere le regole di percorso SMTP. Il metodo Q mantiene leggibile la maggior parte del testo latino su un terminale semplice: l'ASCII stampabile sicuro appare come se stesso, lo spazio è scritto di preferenza come underscore, e qualsiasi altro ottetto diventa un segno di uguale seguito da due cifre esadecimali maiuscole.
Il segno di uguale, il punto interrogativo e l'underscore devono essere escapati quando compaiono come dati, perché sono strutturali nella grammatica della encoded-word. Le interruzioni soft del quoted-printable di corpo non si applicano qui: una encoded-word è un token atomico e non deve contenere una sequenza di soft break. Se Le serve un impacchettamento binario opaco per le intestazioni, preferisca il metodo B o un helper Base64; questa landing è per il percorso Q leggibile che oggetti e display name usano ancora ogni giorno.
Dove si incontra la codifica Q nelle intestazioni email
Gli sviluppatori incontrano la codifica Q di RFC 2047 quando ispezionano righe Subject che iniziano con uguale-interrogativo UTF-8 interrogativo Q, creano display name internazionali per intestazioni From e To, o debuggano perché un accento di café è diventato underscore e coppie uguale-hex in un dump di messaggio grezzo. I team frontend e di supporto decodificano frammenti Q durante l'indagine dei ticket senza incollare dati in script ad hoc che gestiscono male l'underscore al posto dello spazio o confondono il quoted-printable del corpo con le regole Q di intestazione.
I servizi backend codificano campioni di configurazione o stringhe multilingue brevi prima di inserirle in campi di intestazione dove il trasporto a 8 bit senza restrizioni non è garantito. Gli ingegneri della qualità generano coppie encode e decode deterministiche per test di contratto così una libreria di posta che dichiara supporto RFC 2047 non possa cambiare in silenzio il casing esadecimale, lasciare spazi non escapati o accettare sequenze uguale rotte.
Gli educatori usano lo stesso strumento per insegnare la differenza tra soft break del quoted-printable di corpo e atomi Q di intestazione che devono restare su un solo token. Lo abbini ad helper MIME quoted-printable quando lavora su corpi anziché su intestazioni, e ad helper Base64 quando una encoded-word B è la scelta giusta per dati di intestazione densi dall'aspetto binario.
Casi d'uso
Debug di Subject e display name
Codifichi o decodifichi frammenti Subject e From di display name in Q RFC 2047 affinché accenti e spazi corrispondano a ciò che mostrano i client di posta.
Preparazione di intestazioni per gateway legacy
Trasformi testo UTF-8 semplice in token di intestazione codificati in Q sicuri per il trasporto prima di inviare su percorsi di posta a 7 bit limitati.
Domande frequenti
Quanto costa il codificatore Q per intestazioni?
È gratis nel Suo browser su questa pagina.
In che modo la codifica Q di intestazione differisce dal quoted-printable di corpo?
La codifica Q di intestazione (RFC 2047) mappa lo spazio su underscore, vieta le interruzioni soft dentro una encoded-word e tratta =, ? e _ come speciali.
Perché gli spazi diventano trattini bassi?
Una parola codificata deve restare un unico blocco senza spazi dentro l'intestazione, quindi il metodo Q scrive ogni spazio come trattino basso. In decodifica ogni trattino basso torna spazio, mentre un trattino basso vero del testo viene messo in escape.
Che cosa indica =?UTF-8?Q? all'inizio?
È l'involucro della parola codificata: prima il set di caratteri, poi la lettera Q del metodo e infine il testo codificato, chiuso da ?=. Lo strumento lo aggiunge in codifica, a meno che lei chieda soltanto il contenuto.
Cosa succede se una sequenza di escape è incompleta?
Lo strumento rifiuta il testo invece di indovinare. Un segno uguale non seguito da due cifre esadecimali valide indica una copia tagliata o alterata, ed è meglio correggere la fonte che ottenere un risultato sbagliato.
Strumenti correlati
Per sviluppatori — accesso via API
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.
Endpoint
Autenticazione con Bearer token: un POST mette in coda l'attività e il risultato arriva via webhook o link firmato.
Chiamala dal tuo 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)Esempio di richiesta
{
"text": "Hello café"
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "enc.quoted_printable_q",
"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.
Prezzi
Prezzo pubblicato, senza token né crediti. Se l'attività fallisce, non paghi.
Errori
| HTTP | Codice | Significato |
|---|---|---|
401 | unauthorized | Chiave API mancante o non valida: controlla l'header Authorization. |
402 | insufficient_balance | Credito esaurito: ricarica per continuare a eseguire attività. |
404 | unknown_type | Tipo di attività sconosciuto: controlla il campo type della richiesta. |
429 | rate_limited | Troppe richieste in poco tempo: rallenta e riprova tra qualche secondo. |
Note tecniche
A differenza del quoted-printable del corpo, la codifica Q di intestazione mappa ogni spazio su un underscore, vieta le interruzioni di riga soft all'interno di una encoded-word e riserva il punto interrogativo e l'underscore affinché i parser di posta non confondano il payload con la cornice =? Il motore è completamente deterministico: gli stessi input, mode, charset e form producono sempre lo stesso risultato, senza chiamate di rete, sali casuali né scorciatoie dipendenti dalla data. Lo usi gratis nel browser per il debug della posta e la pratica sulle intestazioni, oppure chiami l'API a $0.002 per richiesta riuscita quando le pipeline necessitano di trasformazioni RFC 2047 riproducibili in CI e servizi backend.
Cos'è la codifica Q di RFC 2047 e cosa restituisce questo strumento
Una encoded-word ha la forma uguale-interrogativo charset interrogativo encoding interrogativo payload interrogativo-uguale, dove la lettera di encoding è Q per il metodo simile al quoted-printable oppure B per Base64. Questa pagina segue sempre quel contratto per testo UTF-8 per impostazione predefinita: la modalità encode mappa la stringa in byte del charset, emette underscore per lo spazio e uguale-hex per i byte non sicuri, quindi avvolge opzionalmente il payload come encoded-word completa; la modalità decode accetta una encoded-word completa o un payload Q nudo, espande underscore e coppie uguale-hex, e rifiuta sequenze incomplete o non esadecimali invece di indovinare. La risposta JSON include result per la stringa trasformata, mode che ripete encode o decode, encoding fisso a rfc2047-q, charset, form (encoded_word o payload), il campo payload nudo per asserzioni semplici, e input_bytes più output_bytes per fissare le dimensioni nei test. Non c'è percorso di streaming né riparazione silenziosa di testo Q rotto: o la stringa è valida o la richiesta fallisce con invalid_input.
Come vengono letti text, mode, charset e form e come i risultati restano riproducibili
charset? Q? …? Encode accetta stringhe Unicode, le converte con le regole del charset scelto, poi emette token Q con escape esadecimali maiuscoli e underscore per ogni spazio. Dopo il recupero dei byte, una decodifica UTF-8 fatale assicura che spazzatura binaria non diventi mojibake quando il charset è UTF-8. Il campo payload preferito è text, con alias input, value e s, così form, query string e client SDK riutilizzano lo stesso contratto senza rinominare colonne. Mode ha impostazione predefinita encode e accetta decode in modo esplicito; gli alias op, direction e action mappano sullo stesso interruttore per gli script che usano già quei nomi. Charset ha impostazione predefinita UTF-8 e viene scritto nella encoded-word in encode; quando si decodifica una encoded-word completa il charset è preso dal token stesso, e quando si decodifica un payload nudo il parametro charset sceglie come i byte recuperati diventano testo. Form ha impostazione predefinita encoded_word così encode restituisce una stringa completa =? Decode richiede una stringa Q ben formata: un uguale solo a fine input, un uguale seguito da un solo carattere, o un uguale seguito da cifre non esadecimali falliscono con un messaggio invalid_input chiaro che nomina l'escape malformato. Abbini l'esecuzione gratuita del browser su questa pagina all'API a pagamento quando le serve il risultato matematico identico dentro una pipeline automatizzata senza reimplementare Lei le tabelle RFC 2047. Gli input non validi restituiscono invalid_input e non vengono addebitati, il che mantiene economica la validazione mentre le trasformazioni riuscite restano a un prezzo fisso per elemento di $0.002.
Dove la codifica Q si colloca in intestazioni e-mail, MIME e fixture di test
Su questa pagina il lavoro gira interamente nel Suo browser; tramite l'API ogni consultazione riuscita costa $0.002, la validazione fallita non viene addebitata e nulla viene memorizzato dopo la risposta. Quella suddivisione — esplorazione interattiva gratuita e API a prezzo con risultato identico — combacia con il resto del catalogo KIT tier A e Le consente di passare da una demo in aula a una pipeline automatizzata senza cambiare il risultato codificato.
Casi di integrazione
Generazione di fixture di intestazione e-mail
Produca encoded-word riproducibili per unit test, file golden e controlli di integrazione SMTP o IMAP che affermino la forma dell'intestazione.
Domande tecniche
Quali mode e form sono supportati?
mode=encode (predefinito) trasforma testo semplice in codifica Q; mode=decode trasforma una stringa Q di nuovo in testo. form=encoded_word (predefinito in encode) avvolge come =?charset?Q?payload?=; form=payload restituisce solo il corpo Q interno.
Cosa succede se una sequenza di escape è malformata?
Decode fallisce con invalid_input. Un =XX incompleto, cifre non esadecimali dopo = o caratteri illegali in un payload Q vengono rifiutati anziché indovinati.
Il risultato è deterministico?
Sì. Gli stessi text, mode, charset e form producono sempre lo stesso risultato, senza rete, casualità o comportamento dipendente dalla data.