ForHosting KIT · Outils pour développeurs

Encodeur et décodeur UTF-7

Encodez du texte en UTF-7 pour qu’il traverse les canaux limités à sept bits : café devient caf+AOk-, et le décodage rend le mot d’origine. Les lettres de l’anglais restent lisibles ; seuls les autres caractères passent en courtes séquences. Gratuit dans votre navigateur.

  • Gratuit
  • Fonctionne dans votre navigateur
  • Sans inscription
  • Vos données restent sur votre appareil
Utilisez-le depuis WebAPIE-mailTelegramApp bientôt
Si vous saisissez
Texte
café
Mode de calcul
Encode
Vous obtenez
Résultat
caf+AOk-
Encodage
utf-7
Longueur de l'entrée
4
Longueur de la sortie
8

Cet encodeur UTF-7 convertit du texte Unicode brut en la transformation UTF-7 sûre sur sept bits définie par le RFC 2152 et décode les chaînes UTF-7 en Unicode lisible. 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 appels réseau, sans sels aléatoires et sans raccourcis dépendants de la date. Les contrôles courants incluent l’encodage de café en caf+AOk- et le décodage de cette chaîne vers le mot d’origine.

Ce qu’est l’UTF-7 et ce que renvoie cet outil

L’UTF-7 est un encodage de style transfert de contenu pour Unicode, conçu pour que le texte traverse des systèmes ne garantissant que la sécurité ASCII sur sept bits. Les caractères de l’ensemble direct — lettres, chiffres, une courte liste de ponctuation, l’ASCII imprimable optionnel et l’espace blanc ordinaire — apparaissent tels quels, de sorte que la prose en anglais reste lisible sous la forme encodée.

Tout caractère hors de cet ensemble, y compris les lettres latines accentuées, le grec, le CJK, les emoji et d’autres points de code hors BMP, est regroupé en une plage décalée : un signe plus, un corps Base64 modifié sans signes égal de remplissage, et un trait d’union terminateur optionnel lorsque le caractère suivant serait autrement absorbé dans l’alphabet Base64. Un signe plus littéral est un cas spécial écrit plus-trait d’union afin de ne jamais démarrer un décalage accidentel.

Cette page suit toujours le contrat RFC 2152 pour le texte brut : le mode encode parcourt les points de code Unicode, laisse passer les caractères directs, empaquette les plages non directes en unités UTF-16 big-endian et émet la forme Base64 décalée ; le mode decode copie le texte direct, développe les plages décalées et rejette les corps Base64 vides ou incomplets au lieu de deviner.

Si vous avez besoin d’un empaquetage binaire opaque, préférez les points d’entrée Base64 ou Base64url ; si vous avez besoin de l’UTF-7 modifié IMAP pour les noms de boîtes avec introducteur esperluette, c’est un autre alphabet et ce n’est pas cette page.

Où l’on croise encore l’UTF-7

Les développeurs rencontrent l’UTF-7 en inspectant des encodages de courrier historiques, en reproduisant des cas d’interopérabilité des exemples RFC 2152 comme la séquence de visage souriant Hi Mom -+Jjo!, ou en confirmant qu’un accent de café devient une courte plage décalée plutôt qu’un Base64 opaque pour tout le message. Les équipes frontend et support décodent des extraits UTF-7 lors de l’investigation de tickets sans coller les données dans des scripts ad hoc qui maltraitent le terminateur trait d’union ou traitent plus-trait d’union comme un décalage vide.

Les services backend encodent des échantillons de configuration ou de courtes chaînes multilingues avant de les placer sur des chemins restreints à sept bits où le transport propre sur huit bits n’est pas garanti. Les ingénieurs qualité génèrent des paires encode et decode déterministes pour les tests de contrat, afin qu’une bibliothèque affirmant prendre en charge l’UTF-7 ne puisse pas changer silencieusement les règles du terminateur ni omettre des caractères résiduels après une plage décalée.

Les formateurs utilisent le même outil pour enseigner la différence entre les dumps hexadécimaux d’octets UTF-8, les échappements equals-hex du quoted-printable et le Base64 décalé par signe plus de l’UTF-7 pour des charges surtout textuelles. Associez-le aux aides quoted-printable et Base64 lorsque vous avez besoin d’encodages de transfert liés, et à d’autres outils texte lorsque vous construisez un petit laboratoire d’encodeurs gratuits et déterministes.

Débogage de courrier hérité

Encodez ou décodez des extraits UTF-7 de messages historiques pour que accents et plages Base64 décalées correspondent à ce qu’attendaient les anciennes passerelles.

Préparation de chemins à sept bits

Transformez du texte Unicode brut en UTF-7 sûr pour le transport avant envoi sur des canaux restreints uniquement ASCII.

Que coûte l’encodeur UTF-7 ?

Il est gratuit dans votre navigateur sur cette page.

En quoi l’UTF-7 diffère-t-il de Base64 ou d’UTF-8 ?

UTF-8 est un encodage par octets d’Unicode. Base64 encode chaque octet dans un alphabet opaque. UTF-7 garde la plupart de l’ASCII lisible et ne décale que les caractères non directs en plages Base64 à signe plus d’unités UTF-16BE.

Que se passe-t-il si une séquence de décalage est mal formée ?

Un plus final seul, un corps Base64 vide après le plus, ou une longueur d’octets décodés impaire sont tous rejetés plutôt que devinés.

Le résultat est-il déterministe ?

Oui. Le même text et le même mode produisent toujours le même résultat, sans réseau, sans aléa ni comportement dépendant de la date.

Pourquoi café devient-il caf+AOk- en UTF-7 ?

Les lettres c, a et f font partie du jeu direct et restent telles quelles. Le é n’en fait pas partie : il passe dans une séquence décalée, avec un signe plus, un court bloc Base64 sans remplissage et un tiret de fermeture.

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.

POSThttps://api.kit.forhosting.com/enc/utf7

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é.

curl -X POST https://api.kit.forhosting.com/enc/utf7 \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"text":"café"}'
{
  "text": "café"
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "enc.utf7",
  "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.

par requête$0.002

Le prix est publié, sans tokens ni crédits. Une tâche qui échoue n’est pas facturée.

HTTPCodeSignification
401unauthorizedClé API absente ou invalide : vérifiez l’en-tête Authorization.
402insufficient_balanceSolde insuffisant : rechargez votre compte pour lancer cette tâche.
404unknown_typeType de tâche inconnu : vérifiez le champ type de votre requête.
429rate_limitedTrop de requêtes : ralentissez la cadence, puis réessayez.

Utilisez-le gratuitement dans le navigateur pour le débogage du courrier et la pratique d’Unicode, ou appelez l’API à $0.002 par requête réussie lorsque les pipelines exigent des transformations UTF-7 reproductibles en CI et dans les services backend.

Ce qu’est l’UTF-7 et ce que renvoie cet outil

La réponse JSON inclut result pour la chaîne transformée, mode qui reprend encode ou decode, encoding fixé à utf-7, ainsi que input_length et output_length mesurés en longueur de chaîne JavaScript pour que les tests puissent affirmer les tailles. Il n’y a ni chemin de streaming ni réparation silencieuse des décalages cassés : soit la chaîne est de l’UTF-7 valide, soit la requête échoue avec invalid_input.

Comment text et mode sont lus et comment les résultats restent reproductibles

Encode accepte toute chaîne Unicode, parcourt les points de code pour que les paires de substituts hors du plan multilingue de base restent intactes, émet les caractères Set D et Set O et l’espace blanc tels quels, mappe un plus nu en plus-trait d’union et enveloppe les plages non directes en Base64 modifié décalé. Après récupération, les octets sont interprétés comme des unités de code UTF-16BE et réassemblés en chaîne JavaScript. Le champ de payload préféré est text, avec les alias input, value et s, afin que formulaires, chaînes de requête et clients SDK réutilisent le même contrat sans renommer les colonnes. Mode vaut encode par défaut et accepte decode explicitement ; les alias op, direction et action mappent vers le même commutateur pour les scripts qui utilisent déjà ces noms. Decode exige une chaîne UTF-7 bien formée : un plus seul en fin d’entrée, un plus suivi d’un caractère non Base64 qui n’est pas un trait d’union, un corps Base64 vide ou un corps Base64 qui s’étend en un nombre impair d’octets échouent tous avec un message invalid_input clair nommant la séquence de décalage mal formée. Associez l’exécution gratuite dans le navigateur de cette page à l’API tarifée lorsque vous avez besoin du résultat mathématique identique dans un pipeline automatisé sans réimplémenter vous-même les tables UTF-7. Les entrées invalides renvoient invalid_input et ne sont pas facturées, ce qui garde la validation peu coûteuse tandis que les transformations réussies restent à un prix fixe par élément de $0.002.

Où l’UTF-7 s’inscrit dans le courrier, les passerelles héritées et les fixtures de test

Sur cette page le travail s’exécute entièrement dans votre navigateur ; via l’API chaque consultation réussie coûte $0.002, la validation en échec n’est pas facturée et rien n’est stocké après la réponse. Cette répartition — exploration interactive gratuite et API tarifée identique — correspond au reste du catalogue KIT de niveau A et vous permet de passer d’une démonstration en classe à un pipeline automatisé sans changer le résultat encodé.

Génération de fixtures RFC 2152

Produisez des chaînes UTF-7 reproductibles pour tests unitaires, fichiers golden et contrôles d’interopérabilité face aux exemples du RFC.

Quels modes sont pris en charge ?

mode=encode (par défaut) transforme le texte brut en UTF-7. mode=decode transforme une chaîne UTF-7 en texte Unicode.

Consulter la documentation complète du KIT →