مشفّر EBCDIC
حوّل النص إلى بايتات الحواسيب المركزية من IBM وبالعكس: تصبح Hello هي c8 85 93 93 96 في صفحة الرموز 037، والتفريغ الست عشري الملصوق من ملف COBOL أو سجل تتبع يعود نصًا مقروءًا. مجاني في متصفحك.
- مجاني
- يعمل في متصفحك
- دون تسجيل
- بياناتك لا تغادر جهازك
شغّل الأداة مجانًا
مثال محلول
- النص
- Hello
- وضع الحساب
- To ebcdic
- النتيجة
- c8 85 93 93 96
- صفحة الرموز
- 037
- المُدخَل
- Hello
- EBCDIC بالنظام السداسي عشر
- c8 85 93 93 96
يحوّل مشفّر EBCDIC النص اليومي إلى صفحة الرموز 037 لحواسيب IBM المركزية، وهي مجموعة الأحرف أحادية البايت الكلاسيكية للولايات المتحدة وكندا التي ما تزال تظهر في كتب COBOL وملفات VSAM وحمولات MQ. الأحرف خارج صفحة 037—الرموز التعبيرية وإيديوغرامات CJK وغيرها من Unicode خارج مجموعة Latin-1 التي يعرّفها CP037—تُدرج في تقرير غير المُعيَّنة مع الفهرس ونقطة الرمز حتى تصحّح المصدر بدل التخمين. الخوارزمية ذهاب وعودة جدول خالص: بلا شبكة، بلا بذور عشوائية، بلا اعتماد على ساعة الحائط.
علاقة ASCII وEBCDIC صفحة 037 ولماذا تهم الأحرف غير المُعيَّنة
يخزّن ASCII الحروف اللاتينية في كتلة متصلة مألوفة: الحرف A الكبير خمسة وستون عشريًا، والأرقام تبدأ من ثمانية وأربعين، والمسافة اثنان وثلاثون. يعيد EBCDIC، المصمَّم لبطاقات IBM المثقوبة وSystem/360، ترتيب تلك الرموز في تخطيط بايتات مختلف. على صفحة الرموز 037 يصبح A الكبير الست عشري C1، والصفر F0، والمسافة 40.
هذا إعادة الترتيب ليست معلومة اختيارية: إن عالجت ملف EBCDIC كـ UTF-8 أو ISO-8859-1 حصلت على تشويه نصي وأطوال حقول معطّلة. تنفّذ هذه الأداة التعيين ثنائي الاتجاه لـ IBM CCSID 037: كل بايت من صفر إلى مئتين وخمسة وخمسين يقابل عداد Unicode Latin-1، وكل عداد Latin-1 يعود إلى بايت EBCDIC واحد بالضبط. يمرّ الترميز على كل نقطة رمز Unicode في سلسلتك؛ إن كانت بين صفر ومئتين وخمسة وخمسين شاملة أُضيف بايت EBCDIC المقابل كرقمين ست عشريين.
يقبل فك الترميز أزواجًا ست عشرية مفصولة بمسافات أو سلسلة ست عشرية متصلة بطول زوجي، ويحوّل كل زوج إلى بايت ثم يوسّعه عبر الجدول العكسي إلى نص. تستهدف هذه الصفحة عمليات البحث عن مشفّر EBCDIC ومحوّل ASCII إلى EBCDIC وصفحة الرموز 037 وترميز أحرف الحاسوب المركزي IBM—لا العشري المعبأ ولا صفحة 500 ولا مقالب بايتات UTF-8.
نصائح عملية وفحوصات الترحيل وأدوات ذات صلة
فحوصات الذهاب والعودة أسرع اختبار دخان: رمّز Hello وتأكد أن البايت الأول C8 للحرف H وأن المسافة ستكون 40، ثم فك الست عشري وتأكد من استعادة السلسلة الأصلية. أبقِ الحمولات تحت حد الأحرف المنشور؛ مجموعات البيانات الثنائية متعددة الميجابايت تبقى دون اتصال مع iconv أو أدوات مجموعات البيانات. هذه الأداة ليست محوّلًا عامًا لعائلة EBCDIC: تختلف الصفحات 500 و1047 و1140 في رموز العملة واليورو، فلا تفترض قابلية نقل الست عشري عبر تلك CCSID.
فضّل هذه القدرة عندما تكون نية البحث نص ASCII أو لاتيني مقابل ست عشري صفحة IBM 037؛ استخدم مشفّر بايتات UTF-8 عندما تحتاج تسلسلات متعددة البايتات الحديثة، وأدوات Base64 عندما يكون الهدف تأطير النقل لا ترجمة مجموعة الأحرف. عند التدريس اعرض الحرف نفسه كـ ASCII عشري وكست عشري CP037 وكتفسير خاطئ تحت ISO-8859-1 حتى يرى الطلاب لماذا ما تزال تكاملات الحاسوب المركزي تحتاج خطوة EBCDIC صريحة.
حالات الاستخدام
تجهيزات ملفات الحاسوب المركزي وحمولات MQ
أنشئ سلاسل ست عشرية EBCDIC CP037 لاختبارات التكامل التي تحاكي سجلات VSAM أو حقول COBOL PIC X أو رسائل MQ دون جهاز z/OS.
التعليم وفرز الدعم
يفك الطلاب ومهندسو المستوى الثاني مقالب الست عشري من آثار CICS إلى نص مقروء ويقارنون أوراق العمل اليدوية بالجدول الحتمي.
الأسئلة الشائعة
ما هي صفحة الرموز IBM EBCDIC 037؟
صفحة الرموز 037 (CCSID 037) هي مجموعة EBCDIC أحادية البايت الكلاسيكية للولايات المتحدة وكندا على حواسيب IBM المركزية. تُعيّن الـ 256 بايت كلها إلى عدادات Unicode Latin-1 وتعيد ترتيب الحروف والأرقام بالنسبة إلى ASCII.
هل يدعم الحروف اللاتينية ذات التشكيل؟
نعم للأحرف في نطاق Latin-1 الذي يعرّفه CP037 (مثل كثير من تشكيلات أوروبا الغربية). الأحرف خارج تلك المجموعة تُبلَّغ كغير مُعيَّنة عند الترميز.
لماذا يبدو ملف EBCDIC غير مفهوم عند فتحه كملف ASCII؟
لأن EBCDIC يضع الحروف على قيم بايت مختلفة. ففي صفحة الرموز 037 يكون الحرف A الكبير C1 والمسافة 40، بينما يستخدم ASCII القيمتين 65 و32، فتتغير كل الحروف وتختل أطوال الحقول عند القراءة الخاطئة.
كيف أفك تفريغًا ست عشريًا بترميز EBCDIC؟
اختر اتجاه العودة إلى النص والصق البايتات الست عشرية، أزواجًا تفصلها مسافات أو فواصل أو فواصل منقوطة أو خطوط عمودية، أو سلسلة متصلة بطول زوجي. ويُبلَّغ عن الطول الفردي أو الزوج غير الصالح بدل إكماله.
ماذا يحدث للرموز التعبيرية أو الحروف الصينية؟
ليس لها بايت في صفحة الرموز 037 التي تغطي نطاق Latin-1 فقط. لذلك تُستبعد من الناتج وتُدرج مع موضعها ونقطة الرمز الخاصة بها، لتصلح النص الأصلي بدل التخمين.
أدوات ذات صلة
للمطوّرين — الوصول عبر API
كل ما في هذه الصفحة متاح برمجيًا. هذا القسم موجّه للفرق التقنية التي تريد ربط الأداة بأنظمتها الخاصة؛ بقية المستخدمين يمكنهم استخدام الأداة أعلاه مباشرة دون الحاجة لقراءة ما يلي.
الـEndpoint
صادِق على طلبك بترويسة Bearer، وأرسل طلب POST واحدًا لتدخل مهمتك قائمة التنفيذ فورًا؛ ثم تستلم النتيجة عبر 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"
}
}الواجهة غير متزامنة: تستلم task_id فور الإرسال، ويمكنك الاستعلام عن الحالة بمعدل طلب واحد في الثانية.
الأسعار
السعر معلن كما تراه: لا tokens ولا نظام نقاط؛ وإن فشلت المهمة فلن تُحاسَب عليها.
الحدود
max_chars | 100000 |
الأخطاء
| HTTP | الرمز | المعنى |
|---|---|---|
401 | unauthorized | مفتاح الوصول مفقود أو غير صالح؛ تحقق من ترويسة Bearer في طلبك. |
402 | insufficient_balance | رصيدك لا يكفي لتنفيذ هذه المهمة؛ أعد شحن الرصيد ثم أعد المحاولة. |
404 | unknown_type | نوع المهمة المطلوب غير موجود في الكتالوج — راجع الاسم المرسل في الطلب. |
429 | rate_limited | تجاوزت الحد المسموح من الطلبات؛ انتظر قليلًا ثم أعد المحاولة. |
ملاحظات تقنية
الصق نصًا عاديًا واختر to_ebcdic لتحصل على بايتات EBCDIC ست عشرية مفصولة بمسافات، أو الصق ستًا عشريًا واختر to_ascii لاستعادة أحرف مقروءة. يحصل الطلاب ومهندسو الترحيل وفرق الدعم على JSON حتمي واحد من مشغّل المتصفح المجاني وواجهة API مسبقة الدفع.
علاقة ASCII وEBCDIC صفحة 037 ولماذا تهم الأحرف غير المُعيَّنة
وإن كانت أعلى حُذف الحرف من تدفق البايتات وسُجّل في unmapped مع فهرسه في السلسلة وcode_point ليتمكّن المشغّلون من الحذف أو النقل الحرفي عمدًا. الرموز الست عشرية غير الصالحة أو الطول المتصل الفردي تثير invalid_input بدل اختراع حشو.
كيفية استدعاء API وما يحتويه الرد
أرسل جسم JSON يتضمن الحقل النصي الإلزامي text (أسماء بديلة input وvalue وdata) ووضعًا اختياريًا mode بقيمة to_ebcdic أو to_ascii. الوضع الافتراضي هو to_ebcdic: يصبح كل حرف قابل للتعيين بايت EBCDIC CP037 بست عشري صغير، مرتبطًا بمسافات في result وebcdic_hex. يعامل الوضع to_ascii الحقل text كست عشري EBCDIC—أزواج مفصولة بمسافات أو فواصل أو فواصل منقوطة أو أنابيب، أو سلسلة متصلة من صفر إلى تسعة وA إلى F بطول زوجي—ويعيد السلسلة المستعادة في result وtext. طول الإدخال محدود بمائة ألف حرف حتى لا يستنزف طلب واحد ذاكرة Worker. عند النجاح يتضمّن كلا الوضعين mode وcode_page بقيمة السلسلة 037 وinput وresult وbytes كأعداد صحيحة من صفر إلى مئتين وخمسة وخمسين وbyte_count وchar_count وmapped_count وunmapped_count وunmapped كمصفوفة كائنات بـ index وchar وcode_point، مع رسالة إنجليزية قصيرة. يعرض الترميز أيضًا ebcdic_hex مساويًا لـ result؛ ويُطبّع فك الترميز ebcdic_hex إلى أزواج مفصولة بمسافات حتى لو لصقت ستًا عشريًا متصلًا. فشل التحقق—text مفقود أو ليس سلسلة أو إدخال مفرط أو mode مجهول أو ست عشري فارغ أو متصل بطول فردي أو رمز ليس رقمين ست عشريين بالضبط—يعيد invalid_input ولا يُحاسب أبدًا. التسعير ثابت $0.002 لكل طلب ناجح بوحدة item.
نصائح عملية وفحوصات الترحيل وأدوات ذات صلة
فضّل to_ebcdic عندما تملك تسميات مقروءة أو أسماء حسابات أو تجهيزات اختبار وتحتاج صورة الست عشري التي يتوقعها شريك الحاسوب المركزي تحت CCSID 037. فضّل to_ascii عندما نسخت الست عشري بالفعل من مقلب أو أثر CICS أو محرر ست عشري وتريد الرموز مرة أخرى. أدرج عمدًا رمزًا تعبيريًا أو حرف CJK بجانب ASCII بسيط لتثبت أن unmapped_count يرتفع وأن تدفق EBCDIC يحوي فقط المجموعة الفرعية القابلة للتعيين—يجب أن تفشل سكربتات الترحيل إغلاقًا عندما يكون unmapped_count غير صفر إذا تعذّر على النظام الهدف تخزين تلك الأحرف. المهام الفاشلة بـ invalid_input لا تستهلك الرصيد المسبق الدفع، فيبقى استكشاف السكربتات رخيصًا عندما يلصق المتعلمون مجموعات ست عشرية ناقصة.
حالات التكامل
الترحيل وفحوصات جودة البيانات
رمّز أسماء العملاء والأعلام قبل التحميل؛ ارفض الدفعات عندما يكون unmapped_count أكبر من صفر حتى لا تصل الرموز التعبيرية إلى أعمدة EBCDIC فقط.
أسئلة تقنية
كيف يبلّغ مشفّر EBCDIC عن الأحرف غير المُعيَّنة؟
في وضع to_ebcdic تُتخطى أي نقطة رمز Unicode فوق 255 في خرج الست عشري وتُدرج في unmapped مع index وchar للعرض وcode_point. يلخّص mapped_count وunmapped_count التشغيل.
ما التنسيق الذي يتوقعه to_ascii؟
بايتات EBCDIC ست عشرية: أزواج مفصولة بمسافات مثل c8 85 أو ست عشري متصل بطول زوجي مثل c885. الست عشري غير الصالح أو الناقص يعيد invalid_input.
هل مشفّر EBCDIC مجاني؟
أداة المتصفح مجانية وتعمل محليًا. تستخدم استدعاءات API رصيد KIT مسبق الدفع بمقدار $0.002 لكل طلب ناجح؛ والمهام الفاشلة لا تُحاسب أبدًا.