Encodeur et décodeur quoted-printable
Transforme Hello café en Hello caf=C3=A9 et inversement : accents et symboles deviennent des paires hexadécimales précédées d'un signe égal, les lettres simples restent lisibles et les retours souples limitent la longueur des lignes. Gratuit dans votre navigateur.
- Gratuit
- Fonctionne dans votre navigateur
- Sans inscription
- Vos données restent sur votre appareil
Lancer gratuitement
Exemple résolu
- Texte
- Hello café
- Mode de calcul
- Encode
- Résultat
- Hello caf=C3=A9
- Encodage
- quoted-printable
- Octets d'entrée
- 11
- Octets de sortie
- 15
Cet encodeur quoted-printable convertit du texte UTF-8 brut en Quoted-Printable MIME et décode des chaînes QP en texte lisible selon les règles de la RFC 2045 section 6.7. Le quoted-printable garde la plupart des caractères ASCII lisibles tout en encodant les octets non sûrs comme des échappements hexadécimaux à signe égal, ce qui explique pourquoi les corps d'e-mail, les passerelles de courrier héritées, et de nombreux chemins d'outillage MIME s'appuient encore dessus pour du texte international sans forcer l'opacité complète du Base64. Le moteur est entièrement déterministe : la même entrée et le même mode produisent toujours le même résultat, sans appel réseau, sans sel aléatoire, et sans raccourci dépendant de la date. Parmi les vérifications courantes : encoder Hello café en Hello caf=C3=A9 et décoder cette chaîne pour retrouver la phrase originale.
Ce qu'est le quoted-printable et ce que renvoie cet outil
Le quoted-printable est un encodage de transfert de contenu défini pour MIME afin que des données majoritairement textuelles puissent voyager à travers des chemins de courrier à 7 bits ou restreints sans devenir un Base64 opaque. Les caractères ASCII imprimables sûrs apparaissent généralement tels quels, le signe égal est réservé comme introducteur d'échappement, et tout autre octet est écrit comme un signe égal suivi de deux chiffres hexadécimaux.
Les sauts de ligne souples — un signe égal en fin de ligne avant un CRLF — permettent aux encodeurs de garder chaque ligne encodée dans la limite classique de soixante-seize caractères sans insérer de sauts de ligne durs dans le texte décodé.
Cette page suit toujours ce contrat pour le texte UTF-8 : le mode encodage encode votre chaîne en UTF-8, associe chaque octet à un littéral ou à un jeton hexadécimal à signe égal, et insère des sauts souples afin que les lignes restent dans la limite ; le mode décodage supprime les sauts souples, développe les paires hexadécimales à signe égal en octets, et rejette les séquences d'échappement incomplètes ou non hexadécimales au lieu de deviner.
Si vous avez besoin d'un empaquetage binaire opaque, préférez les points de terminaison Base64 ou Base64url ; cette page concerne l'encodage QP lisible et orienté e-mail que les clients de courrier et les bibliothèques MIME attendent déjà.
Où l'on croise le quoted-printable dans l'e-mail
Les développeurs rencontrent le quoted-printable lorsqu'ils inspectent des corps d'e-mail marqués Content-Transfer-Encoding: quoted-printable, fabriquent des messages en texte brut international pour des passerelles SMTP, ou déboguent pourquoi un accent de café s'est transformé en paires hexadécimales à signe égal dans un vidage de message brut. Les équipes frontend et support décodent des extraits QP pendant l'investigation de tickets sans coller de données dans des scripts ad hoc qui gèrent mal les sauts de ligne souples.
Les services backend encodent des exemples de configuration ou de courtes chaînes multilingues avant de les placer dans des parties MIME où le transport propre sur 8 bits n'est pas garanti. Les ingénieurs qualité génèrent des paires d'encodage et de décodage déterministes pour des tests de contrat afin qu'une bibliothèque de courrier qui prétend prendre en charge le QP ne puisse pas changer silencieusement les règles de casse hexadécimale ou omettre les sauts souples.
Les enseignants utilisent le même outil en enseignant la différence entre l'opacité du Base64 et la lisibilité du quoted-printable pour des charges utiles majoritairement textuelles. Associez-le aux auxiliaires Base64 lorsque vous avez besoin d'encodages de transfert apparentés, et aux autres outils de texte pour bâtir un petit laboratoire d'encodeurs gratuits et déterministes.
Cas d’usage
Débogage de corps d'e-mail
Encodez ou décodez des extraits quoted-printable MIME depuis des messages bruts afin que les accents et les sauts de ligne souples correspondent à ce qu'affichent les clients de courrier.
Préparation de passerelles héritées
Transformez du texte brut UTF-8 en quoted-printable sûr pour le transport avant l'envoi via des chemins restreints à 7 bits.
Questions fréquentes
Combien coûte l'encodeur quoted-printable ?
Il est gratuit dans votre navigateur sur cette page.
En quoi le quoted-printable diffère-t-il du Base64 ?
Le quoted-printable garde la plupart de l'ASCII lisible et n'échappe que les octets non sûrs comme =XX. Le Base64 encode chaque octet dans un alphabet opaque et convient mieux au binaire pur.
Que se passe-t-il si une séquence d'échappement est mal formée ?
Un =XX incomplet, des chiffres non hexadécimaux après =, ou un = isolé final sont tous rejetés plutôt que devinés.
Le résultat est-il déterministe ?
Oui. Le même texte et le même mode produisent toujours le même résultat, sans réseau, aléa, ou comportement dépendant de la date.
Pourquoi le é devient-il =C3=A9 en quoted-printable ?
Parce qu'en UTF-8 la lettre é occupe deux octets, C3 et A9. Le quoted-printable écrit chaque octet hors ASCII simple sous la forme d'un signe égal suivi de deux chiffres hexadécimaux : une lettre accentuée prend donc six caractères.
Outils associés
Pour les développeurs — accès API
Tout sur cette page est disponible par programmation. Cette section s'adresse aux équipes qui veulent l'intégrer à leurs systèmes ; les autres peuvent simplement utiliser l'outil ci-dessus.
Endpoint
Authentification par jeton Bearer : un seul POST met la tâche en file d’attente, et le résultat vous parvient par webhook ou lien signé.
Appeler depuis votre stack
curl -X POST https://api.kit.forhosting.com/enc/quoted-printable \
-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", {
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",
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", 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", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemple de requête
{
"text": "Hello café"
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "enc.quoted_printable",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L’API est asynchrone : chaque appel renvoie un task_id immédiatement, puis vous interrogez l’état à raison d’une requête par seconde.
Tarifs
Le prix est publié, sans tokens ni crédits. Une tâche qui échoue n’est pas facturée.
Erreurs
| HTTP | Code | Signification |
|---|---|---|
401 | unauthorized | Clé API absente ou invalide : vérifiez l’en-tête Authorization. |
402 | insufficient_balance | Solde insuffisant : rechargez votre compte pour lancer cette tâche. |
404 | unknown_type | Type de tâche inconnu : vérifiez le champ type de votre requête. |
429 | rate_limited | Trop de requêtes : ralentissez la cadence, puis réessayez. |
Notes techniques
Utilisez-le gratuitement dans le navigateur pour le débogage de courrier et la pratique MIME, ou appelez l'API à $0.002 par requête réussie lorsque les pipelines ont besoin de transformations quoted-printable reproductibles en CI et dans des services backend.
Ce qu'est le quoted-printable et ce que renvoie cet outil
La réponse JSON inclut result pour la chaîne transformée, mode reprenant encode ou decode, encoding fixé à quoted-printable, et input_bytes plus output_bytes afin que vous puissiez vérifier les tailles dans les tests. Il n'y a aucun chemin de streaming et aucune réparation silencieuse de QP cassé : soit la chaîne est un texte quoted-printable valide, soit la requête échoue avec invalid_input.
Comment le texte et le mode sont lus et comment les résultats restent reproductibles
Encode accepte toute chaîne Unicode, la convertit avec le TextEncoder de la plateforme en octets UTF-8, puis émet du quoted-printable avec des échappements hexadécimaux en majuscules et des retours à la ligne CRLF souples. Une fois les octets récupérés, un décodage UTF-8 fatal garantit que des données binaires aléatoires ne deviennent pas du texte corrompu. Le champ de charge utile privilégié est text, avec les alias input, value et s afin que formulaires, chaînes de requête et clients SDK puissent réutiliser le même contrat sans renommer de colonnes. Mode par défaut vaut encode et accepte decode explicitement ; les alias op, direction et action correspondent au même choix pour les scripts qui utilisent déjà ces noms. Decode exige une chaîne QP bien formée : un signe égal isolé en fin d'entrée, un signe égal suivi d'un seul caractère uniquement, ou un signe égal suivi de chiffres non hexadécimaux échouent tous avec un message invalid_input clair nommant l'échappement mal formé. Associez l'exécution gratuite dans le navigateur de cette page à l'API payante lorsque vous avez besoin du même résultat mathématique au sein d'un pipeline automatisé sans réimplémenter vous-même les tables quoted-printable. Les entrées invalides renvoient invalid_input et ne sont pas facturées, ce qui garde la validation bon marché tandis que les transformations réussies restent à un prix fixe.
Où le quoted-printable s'inscrit dans l'e-mail, MIME et les fixtures de test
Sur cette page, le travail s'exécute entièrement dans votre navigateur ; via l'API, chaque recherche réussie coûte $0.002, une validation échouée n'est pas facturée, et rien n'est conservé après le renvoi de la réponse. Cette séparation — exploration interactive gratuite et API payante identique — s'inscrit dans le reste du catalogue de niveau A du KIT et permet de passer d'une démonstration en classe à un pipeline automatisé sans changer le résultat encodé.
Cas d'intégration
Génération de fixtures MIME
Produisez des chaînes QP reproductibles pour tests unitaires, fichiers golden, et vérifications d'intégration SMTP ou IMAP.
Questions techniques
Quels modes sont pris en charge ?
mode=encode (par défaut) transforme du texte brut en quoted-printable. mode=decode transforme une chaîne QP en texte UTF-8.