ForHosting KIT · Outils pour développeurs

Encodeur EBCDIC

Passez du texte aux octets d'un mainframe IBM et inversement : Hello devient c8 85 93 93 96 en page de codes 037, et un vidage hexadécimal collé depuis un fichier COBOL ou une trace redevient du texte lisible. 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
Hello
Mode de calcul
To ebcdic
Vous obtenez
Résultat
c8 85 93 93 96
Page de codes
037
Entrée
Hello
EBCDIC en hex
c8 85 93 93 96

Un encodeur EBCDIC traduit le texte courant vers la page de codes 037 des mainframes IBM, le jeu de caractères monooctet classique des États-Unis et du Canada encore présent dans les copybooks COBOL, les dumps VSAM et les charges utiles MQ. Les caractères hors de la page 037—emoji, idéogrammes CJK et autre Unicode hors du Latin-1 défini par CP037—apparaissent dans un rapport non mappé avec index et code point afin que vous puissiez corriger la source au lieu de deviner. L’algorithme est un aller-retour pur par tables : pas de réseau, pas de graine aléatoire, pas de dépendance à l’horloge.

Lien entre ASCII et EBCDIC page 037, et rôle des caractères non mappés

ASCII range les lettres latines dans un bloc contigu familier : le A majuscule vaut soixante-cinq en décimal, les chiffres partent de quarante-huit et l’espace vaut trente-deux. EBCDIC, conçu pour les cartes perforées IBM et le System/360, réorganise ces glyphes dans une autre disposition d’octets. Sur la page 037, le A majuscule devient l’hexadécimal C1, le zéro devient F0 et l’espace devient 40.

Ce réordonnancement n’est pas une anecdote : si vous traitez un fichier EBCDIC comme UTF-8 ou ISO-8859-1, vous obtenez du mojibake et des longueurs de champ faussées. Cet outil implémente le mappage bidirectionnel d’IBM CCSID 037 : chaque octet de zéro à deux cent cinquante-cinq correspond à un scalaire Unicode Latin-1, et chaque scalaire Latin-1 revient à exactement un octet EBCDIC. L’encodage parcourt chaque code point Unicode de votre chaîne ; s’il est compris entre zéro et deux cent cinquante-cinq inclus, l’octet EBCDIC correspondant est ajouté en deux chiffres hex.

Le décodage accepte des paires hex séparées par des espaces ou une chaîne hex continue de longueur paire, convertit chaque paire en octet et l’étend via la table inverse en texte. Cette page vise les recherches d’encodeur EBCDIC, convertisseur ASCII vers EBCDIC, page de codes 037 et encodage de caractères mainframe IBM—pas le décimal compacté, pas la page 500, ni les dumps d’octets UTF-8.

Conseils pratiques, contrôles de migration et outils connexes

Les contrôles aller-retour sont le smoke test le plus rapide : encodez Hello, confirmez que le premier octet est C8 pour H et que l’espace serait 40, puis décodez l’hex et confirmez la chaîne d’origine. Gardez les charges sous la limite de caractères publiée ; les jeux de données binaires de plusieurs mégaoctets restent hors ligne avec iconv ou des utilitaires de dataset.

Cet outil n’est pas un convertisseur général de la famille EBCDIC : les pages 500, 1047 et 1140 diffèrent sur les symbol monétaires et l’euro, donc ne supposez pas que l’hex est portable entre ces CCSID. Préférez cette capacité lorsque l’intention de recherche est du texte ASCII ou latin face à l’hex de la page IBM 037 ; utilisez un encodeur d’octets UTF-8 pour les séquences multi-octets modernes, et des outils Base64 lorsque l’objectif est le cadrage de transport plutôt que la traduction de jeu de caractères.

En enseignement, montrez la même lettre en ASCII décimal, en hex CP037 et sous la mauvaise interprétation ISO-8859-1 pour que les étudiants voient pourquoi les intégrations mainframe exigent encore une étape EBCDIC explicite.

Enseignement et triage du support

Étudiants et ingénieurs L2 décodent des dumps hex de traces CICS en texte lisible et comparent des feuilles manuscrites à la table déterministe.

Qu’est-ce que la page de codes IBM EBCDIC 037 ?

La page 037 (CCSID 037) est le jeu EBCDIC monooctet classique US/Canada sur les mainframes IBM. Elle mappe les 256 octets vers des scalaires Unicode Latin-1 et réordonne lettres et chiffres par rapport à ASCII.

Prend-il en charge les lettres latines accentuées ?

Oui pour les caractères de la plage Latin-1 définie par CP037 (par exemple de nombreux accents d’Europe occidentale). Les caractères hors de cet ensemble sont signalés comme non mappés à l’encodage.

Pourquoi un fichier EBCDIC est-il illisible ouvert en ASCII ?

Parce qu'EBCDIC place les lettres sur d'autres valeurs d'octet. En page de codes 037, le A majuscule vaut C1 et l'espace 40, alors qu'ASCII utilise 65 et 32 : lire le fichier dans le mauvais sens change chaque caractère et fausse la longueur des zones.

Comment décoder un vidage hexadécimal EBCDIC ?

Choisissez le sens retour vers le texte et collez les octets en hexadécimal, par paires séparées par des espaces, virgules, points-virgules ou barres verticales, ou en une suite continue de longueur paire. Une longueur impaire ou une paire invalide vous est signalée au lieu d'être complétée.

Que deviennent les emoji ou les caractères chinois ?

Ils n'ont pas d'octet en page de codes 037, qui ne couvre que la plage Latin-1. Ils sont donc laissés de côté et listés avec leur position et leur point de code, pour que vous corrigiez la source plutôt que 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/ebcdic

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

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

Collez du texte brut et choisissez to_ebcdic pour obtenir des octets EBCDIC hexadécimaux séparés par des espaces, ou collez de l’hex et choisissez to_ascii pour retrouver des caractères lisibles. Étudiants, ingénieurs de migration et équipes de support obtiennent le même JSON déterministe depuis l’exécuteur gratuit du navigateur et l’API prépayée.

Lien entre ASCII et EBCDIC page 037, et rôle des caractères non mappés

S’il est plus grand, le caractère est omis du flux d’octets et enregistré dans unmapped avec son index dans la chaîne et code_point pour que les opérateurs puissent supprimer ou translittérer délibérément. Des jetons hex invalides ou une longueur continue impaire lèvent invalid_input plutôt qu’un rembourrage inventé.

Comment appeler l’API et ce que contient la réponse

Envoyez un corps JSON avec le champ chaîne obligatoire text (alias input, value et data) et un mode optionnel to_ebcdic ou to_ascii. Le mode par défaut est to_ebcdic : chaque caractère mappable devient un octet EBCDIC CP037 en hex minuscule, joint par des espaces dans result et ebcdic_hex. Le mode to_ascii traite text comme de l’hex EBCDIC—paires séparées par espaces, virgules, points-virgules, pipes, ou chaîne continue de zéro à neuf et A à F de longueur paire—et renvoie la chaîne récupérée dans result et text. La longueur d’entrée est plafonnée à cent mille caractères pour qu’une seule requête n’épuise pas la mémoire du Worker. En succès, les deux modes incluent mode, code_page égal à la chaîne 037, input, result, bytes comme entiers de zéro à deux cent cinquante-cinq, byte_count, char_count, mapped_count, unmapped_count, unmapped comme tableau d’objets avec index, char et code_point, plus un court message en anglais. L’encodage expose aussi ebcdic_hex égal à result ; le décodage normalise ebcdic_hex en paires séparées par espaces même si vous avez collé de l’hex continu. Une validation échouée—text manquant, text non chaîne, entrée trop grande, mode inconnu, hex vide, hex continu de longueur impaire ou jeton qui n’est pas exactement deux chiffres hexadécimaux—renvoie invalid_input et n’est jamais facturée. Le tarif est un forfait $0.002 par requête réussie avec unité item.

Conseils pratiques, contrôles de migration et outils connexes

Préférez to_ascii lorsque vous avez déjà copié de l’hex depuis un dump, une trace CICS ou un éditeur hex et souhaitez retrouver les glyphes. Incluez volontairement un emoji ou un caractère CJK à côté d’ASCII simple pour vérifier que unmapped_count augmente et que le flux EBCDIC ne contient que le sous-ensemble mappable—les scripts de migration doivent échouer en fermeture lorsque unmapped_count est non nul si le système cible ne peut pas stocker ces caractères. Les tâches en invalid_input ne consomment pas le solde prépayé, ce qui garde les scripts exploratoires peu coûteux lorsque les apprenants collent des groupes hex incomplets.

Fixtures de fichiers mainframe et charges MQ

Construisez des chaînes hex EBCDIC CP037 pour des tests d’intégration qui simulent des enregistrements VSAM, des champs COBOL PIC X ou des messages MQ sans boîtier z/OS.

Migration et contrôles de qualité des données

Encodez les noms de clients et les drapeaux avant le chargement ; rejetez les lots lorsque unmapped_count est supérieur à zéro pour que les emoji n’atteignent jamais des colonnes uniquement EBCDIC.

Comment l’encodeur EBCDIC signale-t-il les caractères non mappés ?

En mode to_ebcdic, tout code point Unicode supérieur à 255 est omis de la sortie hex et listé dans unmapped avec index, un char d’affichage et code_point. mapped_count et unmapped_count résument l’exécution.

Quel format to_ascii attend-il ?

Des octets EBCDIC hexadécimaux : paires séparées par des espaces comme c8 85 ou hex continu de longueur paire comme c885. Un hex invalide ou incomplet renvoie invalid_input.

L’encodeur EBCDIC est-il gratuit ?

L’outil navigateur est gratuit et s’exécute localement. Les appels API utilisent le solde KIT prépayé à $0.002 par requête réussie ; les tâches en échec ne sont jamais facturées.

Consulter la documentation complète du KIT →