ForHosting KIT · Outils pour développeurs

Encodeur UTF-7 modifié IMAP

Obtenez le nom de dossier exact qu’attend un serveur IMAP : Inbox/日本語 devient Inbox/&ZeVnLIqe-, et un nom obscur relevé dans un journal redevient lisible. Les noms purement anglais ne changent pas. 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
Inbox/日本語
Mode de calcul
Encode
Vous obtenez
Résultat
Inbox/&ZeVnLIqe-
Encodage
modified_utf7_imap
Longueur de l'entrée
9
Longueur de la sortie
16

Les noms de boîtes aux lettres IMAP sur le fil utilisent un dialecte d'UTF-7 appelé UTF-7 modifié (RFC 3501 section 5.1.3). Les caractères US-ASCII imprimables, sauf l'esperluette, conservent leur forme ordinaire ; une esperluette seule devient la séquence de deux caractères esperluette-trait d'union ; et tout autre caractère—accents, CJK, emoji et codes de contrôle—est empaqueté en UTF-16BE dans une section Base64 modifiée qui commence par une esperluette et se termine par un trait d'union, la barre oblique étant remplacée par une virgule. Cet outil encode un nom de dossier Unicode lisible en cette chaîne filaire ou décode une réponse LIST/SELECT en texte lisible.

Ce qu'est l'UTF-7 modifié IMAP et ce que renvoie ce convertisseur

Les protocoles de boîte standard échangent encore les noms de dossiers comme des chaînes sûres sur 7 bits même lorsque les utilisateurs créent des libellés en japonais, espagnol, arabe ou avec des emoji. IMAP a résolu cela avec l'UTF-7 modifié plutôt que l'UTF-8 brut sur chaque chemin serveur : le nom reste surtout lisible lorsqu'il est purement anglais, tandis que les segments internationaux deviennent des blocs compacts enveloppés d'esperluettes. Les règles d'encodage sont strictes.

Les caractères de l'espace au tilde, sauf l'esperluette, s'écrivent inchangés. L'esperluette n'est jamais laissée nue ; elle s'écrit toujours comme esperluette suivie d'un trait d'union afin que les analyseurs traitent le bloc Base64 suivant comme une bascule délibérée. Tout caractère hors de cet ensemble direct est regroupé en une plage, converti en unités de code UTF-16 big-endian, puis encodé en Base64 avec l'alphabet classique sauf que le soixante-quatrième symbole est une virgule au lieu d'une barre, et les signes égal de remplissage sont omis.

Le mode encode renvoie cette chaîne filaire plus le mode résolu, une étiquette d'encodage fixe et les longueurs d'entrée et de sortie. Le mode decode inverse le chemin : il copie l'ASCII direct, développe esperluette-trait d'union en une seule esperluette et transforme chaque section esperluette-charge-trait d'union en Unicode.

Où l'encodage des noms de boîte s'inscrit dans clients, serveurs et tests

Les auteurs de clients rencontrent l'UTF-7 modifié lorsqu'ils implémentent CREATE, RENAME, LIST ou LSUB et ont besoin que le nom sur le fil corresponde à ce que Dovecot, Cyrus, Exchange ou Gmail attendent pour les dossiers internationaux. Les ingénieurs support collent un jeton de dossier cryptique d'un journal de protocole et ont besoin du libellé humain sans ouvrir un client de bureau. Les services backend normalisent les titres de dossier orientés utilisateur avant de les stocker dans un proxy IMAP ou de comparer des cibles SELECT dans des tests d'intégration.

Les ingénieurs qualité génèrent des paires encode et decode pour des tests de contrat afin qu'une mise à jour de bibliothèque ne puisse pas changer en silence la virgule contre la barre en Base64 ni omettre l'échappement de l'esperluette. Les enseignants utilisent la même page pour expliquer la différence entre extensions de boîte UTF-8, UTF-7 modifié hérité et noms d'affichage qui ne touchent jamais le fil. Associez-le à d'autres encodeurs gratuits du catalogue lorsque vous construisez un petit laboratoire d'outils texte déterministes pour le courrier et le travail MIME.

Débogage de clients et serveurs IMAP

Encodez des noms de dossier Unicode pour CREATE ou SELECT, ou décodez des réponses LIST contenant des segments UTF-7 modifié enveloppés d'esperluettes.

Traduction de journaux de support

Transformez des jetons de boîte cryptiques du fil issus de traces protocole en libellés Unicode lisibles sans client de messagerie complet.

En quoi l'UTF-7 modifié IMAP diffère-t-il de l'UTF-7 ordinaire ?

IMAP utilise l'esperluette comme caractère de bascule au lieu du plus, et l'alphabet Base64 utilise la virgule au lieu de la barre. L'esperluette s'écrit esperluette-trait d'union. Les signes égal de remplissage sont omis.

Que renvoie le mode encode pour de l'ASCII pur ?

La même chaîne ASCII imprimable, car les caractères US-ASCII directs sauf l'esperluette se représentent eux-mêmes. Seuls les caractères non directs et les esperluettes nues sont réécrits.

Comment une esperluette littérale est-elle encodée ?

Comme la séquence de deux caractères esperluette-trait d'union (&-). Cela garde l'analyse de bascule non ambiguë lorsqu'une vraie section Base64 suit plus loin dans le nom.

Comment lire un nom de dossier comme Inbox/&ZeVnLIqe- relevé dans un journal ?

Choisissez le décodage et collez le nom tel qu’il apparaît. Chaque section entre une esperluette et un tiret redevient ses caractères : Inbox/&ZeVnLIqe- se lit de nouveau Inbox/日本語.

Pourquoi un nom en UTF-7 modifié peut-il refuser de se décoder ?

Le décodage échoue si une esperluette finale n’a pas de tiret de fermeture, si une section contient autre chose que des lettres, des chiffres, le plus et la virgule, si une section est vide ou si des caractères non ASCII sont hors section. L’outil le signale au lieu de deviner.

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-imap

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-imap \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"text":"Inbox/日本語"}'
{
  "text": "Inbox/日本語"
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "enc.utf7_imap",
  "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.

L'algorithme est pleinement déterministe, s'exécute gratuitement dans votre navigateur et signale les séquences de bascule mal formées, le Base64 incorrect et le non-ASCII illégal nu avec invalid_input au lieu de deviner. Les appels API réussis coûtent $0.002 chacun ; les échecs de validation ne sont pas facturés.

Comment text et mode sont validés et quand les requêtes échouent

Encode accepte toute chaîne Unicode bien formée jusqu'à la limite de caractères documentée, parcourt les unités de code avec soin pour que les paires de substituts des caractères hors BMP restent ensemble, et rejette les substituts non appariés au lieu d'émettre un Base64 corrompu. Les sections Base64 vides entre esperluette et trait d'union sont rejetées car la seule bascule vide légale est le littéral dédié esperluette-trait d'union pour une seule esperluette. Le champ obligatoire est text, avec les alias input, value et s afin que formulaires et scripts réutilisent des noms de colonnes existants. Mode vaut encode par défaut et accepte decode ; les alias op, direction et action correspondent au même commutateur. Decode exige une chaîne UTF-7 modifié bien formée : une esperluette en fin d'entrée sans trait d'union de fermeture, une charge Base64 contenant des caractères hors de A–Z a–z zéro–neuf plus et virgule, une charge qui décode en un nombre impair d'octets, ou des caractères non ASCII hors d'une section de bascule échouent tous avec invalid_input et un message précis. Tout le chemin évite Date, les nombres aléatoires et les E/S réseau, ce qui garde les démos navigateur, les goldens CI et les réponses API bit à bit identiques pour la même entrée. Une validation échouée n'est pas facturée, vous pouvez donc sonder de mauvaises lignes LIST à bas coût tandis que les transformations réussies restent à $0.002 par élément.

Où l'encodage des noms de boîte s'inscrit dans clients, serveurs et tests

Sur cette page la conversion s'exécute gratuitement dans le navigateur ; via l'API chaque requête réussie coûte $0.002, rien n'est stocké après la réponse, et les mathématiques correspondent aux exemples RFC tels que le classique chemin Taipei et japonais qui devient une séquence de segments Base64 modifiés enveloppés d'esperluettes.

Génération de fixtures de protocole

Produisez des paires de noms de boîte reproductibles pour tests unitaires, fichiers golden et contrôles d'intégration IMAP multi-locales.

Quelles erreurs provoquent invalid_input ?

Bascules d'esperluette non terminées, caractères Base64 illégaux, plages d'octets décodés de longueur impaire, substituts non appariés, non-ASCII nu hors d'une section de bascule et texte manquant. Les appels en échec ne sont pas facturés.

Combien coûte l'API ?

$0.002 par requête réussie. L'outil dans le navigateur est gratuit. Une entrée invalide n'est pas facturée.

Consulter la documentation complète du KIT →