مرمّز ومفكّك yEnc
يرمّز «Hello Usenet» إلى مقطع yEnc مؤطر برأس =ybegin وسطر =yend يحمل مجموع التحقق 38A1E859، ويعيد هذه المقاطع إلى نص. يُزاح كل بايت بمقدار 42 بدل أن يتضخم، فيبقى الحجم أقل بكثير من Base64. مجانية في متصفحك.
- مجاني
- يعمل في متصفحك
- دون تسجيل
- بياناتك لا تغادر جهازك
شغّل الأداة مجانًا
مثال محلول
- النص
- Hello Usenet
- وضع الحساب
- Encode
- الاسم
- hello.bin
- الترميز
- yenc
- الحجم
- 12
- Crc32
- 38A1E859
- المستقيم
- 128
يحافظ yEnc على شبه كل ثُماني كحرف واحد قابل للطباعة أو موسَّع بعد إزاحة ثابتة قدرها اثنان وأربعون، ويهرب فقط مجموعة حرجة صغيرة حتى تسير البيانات الثنائية في أجسام مقالات NNTP بتوسّع أقل بكثير من Base64. المحرّك حتمي بالكامل: النص نفسه والوضع والاسم وطول السطر ينتجون دائمًا النتيجة نفسها، بلا استدعاءات شبكة ولا أملاح عشوائية ولا اختصارات تعتمد على التاريخ. تشمل الفحوصات الشائعة ترميز Hello Usenet إلى مقطع مقال مؤطَّر ثم فكّ ذلك المقطع إلى العبارة الأصلية.
ما هو yEnc وماذا تُرجع هذه الأداة
yEnc ترميز بأسلوب نقل المحتوى صُمّم لتمكين الملفات الثنائية من السفر داخل مقالات Usenet دون غرامة الحجم البالغة ثلث حجم Base64. يُزاح كل بايت إدخال باثنين وأربعين بمقياس مائتين وستة وخمسين؛ ولا تُهرَّب سوى القيم الحرجة: العدم وسطر جديد وعودة حمل وعلامة يساوي، بوضع علامة يساوي قبلها وإضافة أربعة وستين قبل الإخراج.
تلتزم هذه الصفحة دائمًا بذلك العقد لنص UTF-8: وضع encode يرمّز سلسلتكم إلى UTF-8 ويطبّق الإزاحة والهروب الحرج ويلفّ الأسطر ويصدر ترويسات مع CRC محسوب؛ ووضع decode يزيل أسطر التحكم ويتجاهل CR وLF في الجسم ويعكس الهروب ويتحقق من size وCRC عند وجودهما ويرفض تسلسلات يساوي غير المكتملة بدل التخمين. إن احتجتم إلى تغليف معتم آمن للبريد ففضّلوا نقاط Base64 أو quoted-printable؛ هذه الصفحة مخصّصة لترميز yEnc الموجَّه ل Usenet الذي يتوقعه عملاء الأخبار وناشرو الثنائيات أصلًا.
أين يناسب yEnc ضمن Usenet والثنائيات وتجهيزات الاختبار
يلتقي المطوّرون ب yEnc عند فحص مقالات NNTP الخام التي تحمل مرفقات ثنائية، أو عند صناعة تجهيزات صغيرة لمحلّلات قارئات الأخبار، أو عند تصحيح سبب فشل ذيل CRC بعد جلب جزئي للمقال. تفكّ فرق الواجهة الأمامية والدعم مقاطع yEnc أثناء التحقيق في التذاكر دون لصق البيانات في نصوص مرتجلة تسيء معالجة الهروب الحرج أو اللفّ الليّن. ترمّز خدمات الخلفية سلاسل قصيرة متعددة اللغات أو عيّنات إعداد إلى yEnc مؤطَّر لاختبارات تكامل يجب أن تطابق إزاحة ناشر حقيقي وتخطيط ترويسته.
يستخدم المعلّمون الأداة نفسها عند شرح الفرق بين عتمة Base64 وترميز Usenet منخفض الكلفة ل yEnc للحمولات الثنائية غالبًا. اقرنوه بمساعدي Base64 وquoted-printable عند الحاجة إلى ترميزات نقل ذات صلة، وبأدوات نصية أخرى عند بناء مختبر صغير من مرمّزات مجانية حتمية.
حالات الاستخدام
تصحيح مقالات Usenet
رمّزوا أو فكّوا مقاطع مقالات yEnc حتى يطابق size في =ybegin وهروب الجسم وذيول CRC-32 ما تتوقعه قارئات الأخبار.
التحقق من المحلّل وCRC
افكّوا حمولات مشبوهة لإظهار الهروب غير المكتمل وعدم تطابق size وأخطاء CRC-32 دون تخمين.
الأسئلة الشائعة
بم يختلف yEnc عن Base64؟
يزيح yEnc كل بايت بمقدار 42 ويهرب فقط قيمًا حرجة قليلة، فتكون الكلفة الإضافية أقل بكثير من أبجدية Base64 ذات الأحرف الأربعة. صُمّم لأجسام مقالات Usenet لا ل MIME البريد.
ماذا يحدث إذا كان الهروب أو CRC تالفًا؟
تُرفض تسلسلات '=' غير المكتملة وعدم تطابق size وعدم تطابق CRC-32 بدل التخمين.
هل النتيجة حتمية؟
نعم. النص نفسه والوضع والاسم وطول السطر ينتجون دائمًا النتيجة نفسها بلا شبكة ولا عشوائية ولا سلوك يعتمد على التاريخ.
ما البايتات التي يهرّبها yEnc؟
يُزاح كل بايت أولًا بمقدار 42. فإذا كان الناتج إحدى القيم الحرجة الأربع، أي القيمة الصفرية أو سطر جديد أو رجوع العربة أو علامة المساواة، كُتب بعلامة مساواة يليها ذلك الناتج مضافًا إليه 64، ويبقى ما عدا ذلك حرفًا واحدًا.
هل يمكنني تغيير طول السطر واسم المرفق؟
نعم. عند الترميز يقبل السطر من 32 إلى 512 حرفًا والافتراضي 128، ويُكتب الاسم في سطر =ybegin، وإن لم تحدده يكون data.bin.
أدوات ذات صلة
للمطوّرين — الوصول عبر API
كل ما في هذه الصفحة متاح برمجيًا. هذا القسم موجّه للفرق التقنية التي تريد ربط الأداة بأنظمتها الخاصة؛ بقية المستخدمين يمكنهم استخدام الأداة أعلاه مباشرة دون الحاجة لقراءة ما يلي.
الـEndpoint
صادِق على طلبك بترويسة Bearer، وأرسل طلب POST واحدًا لتدخل مهمتك قائمة التنفيذ فورًا؛ ثم تستلم النتيجة عبر webhook أو رابط موقّع.
استدعِ الخدمة من بيئتك
curl -X POST https://api.kit.forhosting.com/enc/yenc \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"Hello Usenet"}'const res = await fetch("https://api.kit.forhosting.com/enc/yenc", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "Hello Usenet"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/enc/yenc",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "Hello Usenet"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/enc/yenc", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"Hello Usenet"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"Hello Usenet"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/enc/yenc", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)مثال على الطلب
{
"text": "Hello Usenet"
}مثال على الاستجابة
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "enc.yenc",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}الواجهة غير متزامنة: تستلم task_id فور الإرسال، ويمكنك الاستعلام عن الحالة بمعدل طلب واحد في الثانية.
الأسعار
السعر معلن كما تراه: لا tokens ولا نظام نقاط؛ وإن فشلت المهمة فلن تُحاسَب عليها.
الأخطاء
| HTTP | الرمز | المعنى |
|---|---|---|
401 | unauthorized | مفتاح الوصول مفقود أو غير صالح؛ تحقق من ترويسة Bearer في طلبك. |
402 | insufficient_balance | رصيدك لا يكفي لتنفيذ هذه المهمة؛ أعد شحن الرصيد ثم أعد المحاولة. |
404 | unknown_type | نوع المهمة المطلوب غير موجود في الكتالوج — راجع الاسم المرسل في الطلب. |
429 | rate_limited | تجاوزت الحد المسموح من الطلبات؛ انتظر قليلًا ثم أعد المحاولة. |
ملاحظات تقنية
يحوّل مرمّز yEnc هذا نص UTF-8 العادي إلى صيغة نقل ثنائية منخفضة الكلفة طالما استُخدمت على Usenet، ويفكّ حمولة yEnc المؤطَّرة أو الخام إلى نص مقروء. استخدموه مجانًا في المتصفح لتدريب أدوات Usenet وتصحيح المقالات، أو استدعوا API بسعر $0.002 لكل طلب ناجح عندما تحتاج المسارات إلى تحويلات yEnc قابلة لإعادة الإنتاج في CI وخدمات الخلفية.
ما هو yEnc وماذا تُرجع هذه الأداة
ثم يدرج المرمّزون فواصل أسطر ليّنة لتبقى أسطر المقال قريبة من العرض الكلاسيكي البالغ مائة وثمانية وعشرين حرفًا، ويؤطّرون الجسم بسطر =ybegin يحمل size وطول سطر اختياريًا واسم ملف، مع ذيل =yend يتضمن غالبًا size ومجموع تحقق IEEE CRC-32. تتضمن استجابة JSON الحقل result للسلسلة المحوَّلة وmode الذي يعيد encode أو decode وencoding ثابتًا على yenc وsize لطول الحمولة الثنائية وname وcrc32 اختياريين وframed بقيمة true عند استخدام الترويسات أو اكتشافها وinput_bytes مع output_bytes لتأكيد الأحجام في الاختبارات. لا مسار بثّ ولا إصلاح صامت ل yEnc المعطوب: إما أن تكون السلسلة صالحة وفق هذه القواعد أو يفشل الطلب ب invalid_input.
كيف تُقرأ text وmode وname وline وكيف تبقى النتائج قابلة لإعادة الإنتاج
يقبل encode أي سلسلة Unicode ويحوّلها عبر TextEncoder للمنصة إلى بايتات UTF-8 ثم يصدر مقطع مقال yEnc مؤطَّرًا مع CRC-32 بأحرف كبيرة. بعد استعادة البايتات يضمن فكّ UTF-8 القاتل ألا تصبح القمامة الثنائية نصًا مشوَّهًا. حقل الحمولة المفضّل هو text مع الأسماء البديلة input وvalue وs حتى تعيد النماذج وسلاسل الاستعلام وعملاء SDK استخدام العقد نفسه دون إعادة تسمية الأعمدة. يكون mode افتراضيًا encode ويقبل decode صراحة؛ وتربط الأسماء البديلة op وdirection وaction نفس المفتاح للنصوص البرمجية التي تستخدم تلك الأسماء أصلًا. يُكتب name الاختياري (الأسماء البديلة filename وfile) على سطر =ybegin عند الترميز وافتراضه data.bin؛ ويجب ألا يحتوي على عودة حمل أو سطر جديد أو علامات يساوي. يضبط line الاختياري (الأسماء البديلة line_length وlinewidth) عرض لفّ الجسم بين اثنين وثلاثين وخمسمائة واثني عشر حرفًا وافتراضه مائة وثمانية وعشرون، موافقةً لممارسة yEnc الشائعة. يقبل decode نصًا مؤطَّرًا ب =ybegin و=yend أو تدفق جسم فقط: هروب يساوي غير مكتمل في النهاية، أو يساوي يتبعه فاصل سطر، أو عدم تطابق size مع عدد البايتات المفكوكة، أو عدم تطابق CRC-32 تفشل جميعها برسالة invalid_input واضحة. اقرنوا التشغيل المجاني في متصفح هذه الصفحة بواجهة API المدفوعة عندما تحتاجون النتيجة الرياضية نفسها داخل مسار آلي دون إعادة تنفيذ جداول yEnc بأنفسكم. تُرجع المدخلات غير الصالحة invalid_input ولا تُحاسب، فيبقى التحقق رخيصًا بينما تظل التحويلات الناجحة بسعر عنصر ثابت.
أين يناسب yEnc ضمن Usenet والثنائيات وتجهيزات الاختبار
على هذه الصفحة يعمل كل شيء داخل متصفحكم؛ وعبر API تكلّف كل استعلام ناجح $0.002، ولا تُحاسب عمليات التحقق الفاشلة، ولا يُخزَّن شيء بعد الاستجابة. ذلك الفصل — استكشاف تفاعلي مجاني وAPI مطابقة مدفوعة — يوافق بقية كتالوج KIT من المستوى A ويتيح الانتقال من عرض تعليمي إلى مسار آلي دون تغيير النتيجة المرمّزة.
حالات التكامل
توليد تجهيزات ثنائية
أنتجوا سلاسل yEnc مؤطَّرة وقابلة لإعادة الإنتاج لاختبارات الوحدة وملفات golden وفحوصات تكامل NNTP أو الناشرين.
أسئلة تقنية
كم يكلّف مرمّز yEnc؟
هو مجاني في متصفحكم على هذه الصفحة. عبر API يكلّف الطلب الناجح $0.002؛ والمدخلات غير الصالحة لا تُحاسب.
ما الأوضاع المدعومة؟
mode=encode (الافتراضي) يحوّل النص العادي إلى yEnc مؤطَّر ب =ybegin و=yend. mode=decode يحوّل سلسلة yEnc (مؤطَّرة أو جسمًا فقط) إلى نص UTF-8.