EBCDICエンコーダ
テキストとIBMメインフレームのバイトを相互に変換できます。コードページ037ではHelloがc8 85 93 93 96になり、COBOLのファイルやトレースから貼り付けた16進ダンプは読める文字に戻ります。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- テキスト
- Hello
- 計算モード
- To ebcdic
- 結果
- c8 85 93 93 96
- コードページ
- 037
- 入力
- Hello
- EBCDIC (16進)
- c8 85 93 93 96
EBCDIC エンコーダは日常の文字列を IBM メインフレームのコードページ 037(米国・カナダ向けの古典的な 1 バイト文字集合)へ変換します。コードページ 037 外の文字—絵文字、CJK 漢字、CP037 が定義する Latin-1 を超える Unicode—は、インデックスとコードポイント付きの未マップ報告に列挙されるため、推測ではなく元データを直せます。アルゴリズムは表引きによる純粋な往復変換で、ネットワークも乱数シードも壁時計にも依存しません。
ASCII と EBCDIC コードページ 037 の関係と未マップ文字の意味
ASCII はラテン文字を連続した馴染みのあるブロックに格納します。大文字 A は十進で 65、数字は 48 から、空白は 32 です。IBM のパンチカードと System/360 向けに設計された EBCDIC は、これらの字形を別のバイト配置へ並べ替えます。
コードページ 037 では大文字 A は 16 進 C1、数字 0 は F0、空白は 40 になります。この並べ替えは任意の豆知識ではありません。本ツールは IBM CCSID 037 の双方向マッピングを実装します。
0 から 255 までの各バイトは Latin-1 の Unicode スカラーに対応し、各 Latin-1 スカラーはちょうど 1 つの EBCDIC バイトに戻ります。符号化は文字列内の各 Unicode コードポイントを走査し、0 以上 255 以下なら対応する EBCDIC バイトを 2 桁の 16 進として追加します。
復号は空白区切りの 16 進ペア、または長さが偶数の連続 16 進を受け付け、各ペアをバイトに変換し、逆引き表でテキストへ展開します。
実務のヒント、移行チェック、関連ツール
往復チェックが最速のスモークテストです。Hello を符号化し、先頭バイトが H の C8、空白なら 40 であることを確認してから 16 進を復号し、元の文字列に戻ることを確認します。本ツールは EBCDIC 族の汎用変換器ではありません。
コードページ 500・1047・1140 は通貨記号やユーロで異なり、16 進をそれらの CCSID 間で可搬と仮定しないでください。
検索意図が ASCII/ラテン文字対 IBM コードページ 037 の 16 進であるときに本能力を選び、現代の複数バイト列が必要なら UTF-8 バイトエンコーダ、文字集合の翻訳ではなく転送フレーミングが目的なら Base64 を使います。
教育では同じ文字を十進 ASCII、CP037 16 進、誤った ISO-8859-1 解釈で並べ、メインフレーム連携に明示的な EBCDIC 工程が今も必要な理由を示してください。
活用例
教育とサポートのトリアージ
学生と L2 エンジニアが CICS トレースの 16 進ダンプを可読テキストに戻し、手作業の表と決定的な対応表を突き合わせます。
よくある質問
IBM EBCDIC コードページ 037 とは何ですか?
コードページ 037(CCSID 037)は IBM メインフレーム上の古典的な米加向け 1 バイト EBCDIC です。256 バイトすべてを Latin-1 の Unicode スカラーに対応づけ、ASCII に対して文字と数字の並びを変えます。
アクセント付きラテン文字は扱えますか?
CP037 が定義する Latin-1 範囲の文字(西欧の多くのアクセントなど)は可能です。その集合外の文字は符号化時に未マップとして報告されます。
EBCDICのファイルをASCIIとして開くと文字化けするのはなぜですか?
EBCDICでは文字が別のバイト値に割り当てられているためです。コードページ037では大文字のAがC1、空白が40ですが、ASCIIでは65と32なので、読み方を誤るとすべての文字が変わり、項目の長さも崩れます。
EBCDICの16進ダンプはどう復号しますか?
文字に戻す方向を選び、16進のバイトを貼り付けます。空白、カンマ、セミコロン、縦線で区切った2桁ずつの並びか、偶数の長さで続いた文字列が使えます。奇数の長さや無効な組は補わずに知らせます。
絵文字や漢字はどうなりますか?
コードページ037はLatin-1の範囲しか扱わないため、これらの文字にはバイトがありません。出力からは外され、位置とコードポイントが一覧で示されるので、元の文章を意図的に直せます。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
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)リクエスト例
{
"text": "Hello"
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "enc.ebcdic",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
制限
max_chars | 100000 |
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
COBOL のコピーブック、VSAM ダンプ、MQ ペイロードでも今なお使われます。平文を貼り付けて to_ebcdic を選ぶと空白区切りの EBCDIC 16 進バイトが得られ、16 進を貼り付けて to_ascii を選ぶと読み取り可能な文字に戻ります。学生、移行エンジニア、サポートチームは、無料のブラウザ実行器と前払い API から同じ決定的な JSON を得られます。
ASCII と EBCDIC コードページ 037 の関係と未マップ文字の意味
EBCDIC ファイルを UTF-8 や ISO-8859-1 として扱うと文字化けし、フィールド長も崩れます。それを超える場合はバイト列から省略し、unmapped に文字列インデックスと code_point を記録するので、運用者は意図的に削除や翻字ができます。無効な 16 進トークンや奇数長の連続 16 進はパディングを捏造せず invalid_input を返します。このページは EBCDIC エンコーダ、ASCII から EBCDIC への変換、コードページ 037、IBM メインフレーム文字符号化の検索意図を対象とし、パック 10 進、コードページ 500、UTF-8 バイトダンプは対象外です。
API の呼び出し方と応答の内容
必須の文字列フィールド text(別名 input、value、data)と、任意の mode(to_ebcdic または to_ascii)を含む JSON 本体を送ってください。既定の mode は to_ebcdic で、マップ可能な各文字は小文字 16 進の EBCDIC CP037 バイトとなり、result と ebcdic_hex で空白結合されます。mode to_ascii は text を EBCDIC 16 進として扱い—空白・カンマ・セミコロン・パイプ区切りのペア、または長さが偶数の 0–9 と A–F の連続文字列—result と text に復元文字列を返します。入力長は 10 万文字に制限され、単一リクエストで Worker メモリを使い果たさないようにしています。成功時は両 mode とも mode、文字列 037 の code_page、input、result、0 から 255 の整数配列 bytes、byte_count、char_count、mapped_count、unmapped_count、index・char・code_point を持つ unmapped 配列、短い英語メッセージを含みます。符号化では ebcdic_hex が result と等しく、復号では連続 16 進を貼っても ebcdic_hex は空白区切りペアに正規化されます。text 欠落、非文字列、過大入力、未知の mode、空の 16 進、奇数長の連続 16 進、ちょうど 2 桁でない 16 進トークンなど検証失敗は invalid_input を返し、課金されません。料金は成功リクエストごとに固定の $0.002(単位 item)です。
実務のヒント、移行チェック、関連ツール
読みやすいラベル、口座名、テスト用フィクスチャがあり、パートナーが CCSID 037 で期待する 16 進像が必要なときは to_ebcdic を優先してください。ダンプ、CICS トレース、16 進エディタから既に 16 進をコピーしているときは to_ascii を優先し、字形を戻します。平文 ASCII の横に絵文字や CJK 文字を意図的に含め、unmapped_count が上がり EBCDIC ストリームがマップ可能な部分集合だけを含むことを確かめます。移行スクリプトは、対象系がそれらの文字を格納できない場合、unmapped_count が非ゼロなら fail-closed にすべきです。公開された文字数上限内にペイロードを収め、数メガバイトのバイナリデータセットは iconv やデータセットユーティリティでオフライン処理します。invalid_input の失敗タスクは前払い残高を消費しないため、学習者が不完全な 16 進グループを貼っても探索スクリプトを安く保てます。
連携の活用例
メインフレームファイルと MQ ペイロードのフィクスチャ
z/OS 機なしで VSAM レコード、COBOL PIC X フィールド、MQ メッセージを模擬する結合試験向けに、EBCDIC CP037 の 16 進文字列を組み立てます。
移行とデータ品質チェック
ロード前に顧客名やフラグを符号化し、unmapped_count が 0 より大きいバッチを拒否して、絵文字が EBCDIC 専用列に届かないようにします。
技術的な質問
EBCDIC エンコーダは未マップ文字をどう報告しますか?
to_ebcdic モードでは、255 を超える Unicode コードポイントは 16 進出力から省かれ、index・表示用 char・code_point 付きで unmapped に列挙されます。mapped_count と unmapped_count が実行結果を要約します。
to_ascii はどの形式を想定しますか?
16 進の EBCDIC バイトです。c8 85 のような空白区切りペア、または c885 のような偶数長の連続 16 進。無効または不完全な 16 進は invalid_input を返します。
EBCDIC エンコーダは無料ですか?
ブラウザ版は無料でローカル実行です。API 呼び出しは成功リクエストごとに $0.002 の KIT 前払い残高を使い、失敗タスクは課金されません。