Codificador EBCDIC
Passe texto para bytes de mainframe IBM e volte: Hello vira c8 85 93 93 96 na code page 037, e um dump hexadecimal colado de um arquivo COBOL ou de um rastreamento volta como texto legível. Grátis no seu navegador.
- Grátis
- Funciona no seu navegador
- Sem cadastro
- Seus dados não saem do seu aparelho
Executar grátis
Exemplo resolvido
- Texto
- Hello
- Modo de cálculo
- To ebcdic
- Resultado
- c8 85 93 93 96
- Página de código
- 037
- Entrada
- Hello
- EBCDIC em hex
- c8 85 93 93 96
Um codificador EBCDIC traduz texto do dia a dia para a code page 037 de mainframe IBM, o conjunto de caracteres de um byte clássico dos EUA e Canadá que ainda aparece em copybooks COBOL, dumps VSAM e cargas MQ. Caracteres fora da code page 037—emoji, ideogramas CJK e outro Unicode fora do conjunto Latin-1 que o CP037 define—aparecem em um relatório de não mapeados com índice e code point para que você corrija a origem em vez de adivinhar. O algoritmo é um ida e volta puro por tabelas: sem rede, sem sementes aleatórias, sem dependência do relógio.
Como ASCII e EBCDIC code page 037 se relacionam, e por que os não mapeados importam
ASCII armazena letras latinas em um bloco contíguo familiar: o A maiúsculo é sessenta e cinco em decimal, os dígitos começam em quarenta e oito e o espaço é trinta e dois. EBCDIC, projetado para cartões perfurados IBM e System/360, reorganiza esses glifos em outro layout de bytes. Na code page 037, o A maiúsculo vira hexadecimal C1, o dígito zero vira F0 e o espaço vira 40.
Essa reorganização não é curiosidade opcional: se você tratar um arquivo EBCDIC como UTF-8 ou ISO-8859-1, obtém mojibake e comprimentos de campo quebrados. Esta ferramenta implementa o mapeamento bidirecional do IBM CCSID 037: cada byte de zero a duzentos e cinquenta e cinco mapeia para um escalar Unicode Latin-1, e cada escalar Latin-1 volta a exatamente um byte EBCDIC. A codificação percorre cada code point Unicode da sua string; quando está entre zero e duzentos e cinquenta e cinco inclusive, o byte EBCDIC correspondente é anexado como dois dígitos hex.
A decodificação aceita pares hex separados por espaços em branco ou uma string hex contínua de comprimento par, converte cada par em um byte e o expande pela tabela inversa em texto. Esta landing cobre buscas por codificador EBCDIC, conversor ASCII para EBCDIC, code page 037 e codificação de caracteres de mainframe IBM—não decimal empacotado, não code page 500 e não dumps de bytes UTF-8.
Casos de uso
Ensino e triagem de suporte
Estudantes e engenheiros L2 decodificam dumps hex de traces CICS para texto legível e comparam planilhas manuais com a tabela determinística.
Perguntas frequentes
O que é a code page IBM EBCDIC 037?
A code page 037 (CCSID 037) é o conjunto EBCDIC de um byte clássico EUA/Canadá em mainframes IBM. Mapeia todos os 256 bytes para escalares Unicode Latin-1 e reorganiza letras e dígitos em relação ao ASCII.
Ele suporta letras latinas acentuadas?
Sim, para caracteres no intervalo Latin-1 que o CP037 define (por exemplo muitos acentos da Europa Ocidental). Caracteres fora desse conjunto são reportados como não mapeados na codificação.
O codificador EBCDIC é grátis?
A ferramenta do navegador é grátis e roda localmente.
Por que um arquivo EBCDIC fica ilegível quando aberto como ASCII?
Porque o EBCDIC coloca as letras em valores de byte diferentes. Na code page 037 o A maiúsculo é C1 e o espaço é 40, enquanto o ASCII usa 65 e 32, então ler o arquivo do jeito errado troca cada caractere e bagunça o tamanho dos campos.
Como decodifico um dump hexadecimal EBCDIC?
Escolha o sentido de volta para texto e cole os bytes em hexadecimal, em pares separados por espaços, vírgulas, ponto e vírgula ou barras verticais, ou como uma sequência contínua de tamanho par. Um tamanho ímpar ou um par inválido é apontado, não completado.
Ferramentas relacionadas
Para desenvolvedores — acesso via API
Tudo nesta página está disponível via API. Esta seção é para equipes que querem integrar a ferramenta aos próprios sistemas; quem não precisa disso pode simplesmente usar a ferramenta acima.
Endpoint
Autenticação por token Bearer. Um único POST coloca a tarefa na fila; o resultado chega por webhook ou link assinado.
Chame do seu código
curl -X POST https://api.kit.forhosting.com/enc/ebcdic \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"Hello"}'const res = await fetch("https://api.kit.forhosting.com/enc/ebcdic", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "Hello"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/enc/ebcdic",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "Hello"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/enc/ebcdic", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"Hello"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"Hello"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/enc/ebcdic", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemplo de requisição
{
"text": "Hello"
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "enc.ebcdic",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}A API é assíncrona: cada chamada devolve um task_id na hora. Se preferir polling, consulte o status a até 1 requisição por segundo.
Preço
Preço publicado, sem tokens nem créditos escondidos. Tarefa que falha não é cobrada.
Limites
max_chars | 100000 |
Erros
| HTTP | Código | O que significa |
|---|---|---|
401 | unauthorized | Token ausente ou inválido. Confira o header Authorization. |
402 | insufficient_balance | Saldo insuficiente para esta tarefa. Faça uma recarga e tente de novo. |
404 | unknown_type | Esse tipo de tarefa não existe. Confira o campo type no catálogo. |
429 | rate_limited | Muitas requisições em pouco tempo. Espere um instante e tente de novo. |
Notas técnicas
Cole texto simples e escolha to_ebcdic para receber bytes EBCDIC hexadecimais separados por espaços, ou cole hex e escolha to_ascii para recuperar caracteres legíveis. Estudantes, engenheiros de migração e equipes de suporte obtêm o mesmo JSON determinístico no executor gratuito do navegador e na API pré-paga.
Como ASCII e EBCDIC code page 037 se relacionam, e por que os não mapeados importam
Quando é maior, o caractere é omitido do fluxo de bytes e registrado em unmapped com o índice na string e code_point para que operadores possam remover ou transliterar de propósito. Tokens hex inválidos ou comprimento contínuo ímpar geram invalid_input em vez de inventar preenchimento.
Como chamar a API e o que a resposta contém
Envie um corpo JSON com o campo string obrigatório text (aliases input, value e data) e um mode opcional to_ebcdic ou to_ascii. O modo padrão é to_ebcdic: cada caractere mapeável vira um byte EBCDIC CP037 em hex minúsculo, unido com espaços em result e ebcdic_hex. O modo to_ascii trata text como hex EBCDIC—pares separados por espaços, vírgulas, ponto e vírgula, pipes, ou uma string contínua de zero a nove e A a F de comprimento par—e devolve a string recuperada em result e text. O comprimento da entrada é limitado a cem mil caracteres para que uma única requisição não esgote a memória do Worker. Em sucesso, ambos os modos incluem mode, code_page com a string 037, input, result, bytes como inteiros de zero a duzentos e cinquenta e cinco, byte_count, char_count, mapped_count, unmapped_count, unmapped como array de objetos com index, char e code_point, além de uma mensagem curta em inglês. A codificação também expõe ebcdic_hex igual a result; a decodificação normaliza ebcdic_hex para pares separados por espaços mesmo se você colou hex contínuo. Validação falha—text ausente, text não string, entrada grande demais, mode desconhecido, hex vazio, hex contínuo de comprimento ímpar ou token que não seja exatamente dois dígitos hexadecimais—retorna invalid_input e nunca é cobrada. O preço é fixo US$ 0,002 por requisição bem-sucedida com unidade item.
Dicas práticas, checagens de migração e ferramentas relacionadas
Checagens de ida e volta são o smoke test mais rápido: codifique Hello, confirme que o primeiro byte é C8 para H e que o espaço seria 40, depois decodifique o hex e confirme a string original. Esta ferramenta não é um conversor geral da família EBCDIC: as code pages 500, 1047 e 1140 diferem em símbolos de moeda e euro, então não assuma que o hex é portável entre esses CCSIDs. Prefira esta capacidade quando a intenção de busca for texto ASCII ou latino versus hex da IBM code page 037; use um codificador de bytes UTF-8 quando precisar de sequências multibyte modernas, e ferramentas Base64 quando o objetivo for enquadramento de transporte e não tradução de conjunto de caracteres. Ao ensinar, mostre a mesma letra como ASCII decimal, como hex CP037 e como a interpretação errada em ISO-8859-1 para que estudantes vejam por que integrações de mainframe ainda precisam de um passo EBCDIC explícito. Prefira to_ascii quando já copiou hex de um dump, um trace CICS ou um editor hex e quiser os glifos de volta. Inclua de propósito um emoji ou um caractere CJK ao lado de ASCII simples para afirmar que unmapped_count sobe e que o fluxo EBCDIC contém só o subconjunto mapeável—scripts de migração devem falhar fechado quando unmapped_count for diferente de zero se o sistema destino não puder armazenar esses caracteres. Mantenha payloads abaixo do limite de caracteres publicado; datasets binários de vários megabytes ficam offline com iconv ou utilitários de dataset. Tarefas com invalid_input não consomem saldo pré-pago, o que mantém scripts exploratórios baratos quando alunos colam grupos hex incompletos.
Casos de integração
Fixtures de arquivos mainframe e cargas MQ
Monte strings hex EBCDIC CP037 para testes de integração que simulam registros VSAM, campos COBOL PIC X ou mensagens MQ sem uma caixa z/OS.
Migração e checagens de qualidade de dados
Codifique nomes de clientes e flags antes da carga; rejeite lotes quando unmapped_count for maior que zero para que emoji nunca cheguem a colunas só EBCDIC.
Perguntas técnicas
Como o codificador EBCDIC reporta caracteres não mapeados?
No modo to_ebcdic, qualquer code point Unicode acima de 255 é omitido na saída hex e listado em unmapped com index, um char de exibição e code_point. mapped_count e unmapped_count resumem a execução.
Qual formato o to_ascii espera?
Bytes EBCDIC hexadecimais: pares separados por espaços como c8 85 ou hex contínuo de comprimento par como c885. Hex inválido ou incompleto retorna invalid_input.