مهرب سلاسل C
علامة اقتباس أو شرطة مائلة عكسية أو سطر جديد واحد يكفي لكسر سلسلة في لغة C؛ تحوّل الأداة Hello "world" يليه سطر جديد فيه line 2 إلى Hello \"world\"\nline 2 جاهزًا للصق في الشيفرة. وتلغي التهريب أيضًا وتتوقف عند الأخطاء. مجاني في متصفحك.
- مجاني
- يعمل في متصفحك
- دون تسجيل
- بياناتك لا تغادر جهازك
شغّل الأداة مجانًا
مثال محلول
- النص
- Hello "world" line 2
- وضع الحساب
- Escape
- علامة الاقتباس
- Double
- النتيجة
- Hello \"world\"\nline 2
- الطول
- 23
- حرفي
- "Hello \"world\"\nline 2"
إدراج نص حر داخل حرفيّة سلسلة في C أو C++ مأزق كلاسيكي: علامة اقتباس مزدوجة واحدة تنهي السلسلة، وشرطة مائلة عكسية عارية تبتلع الحرف التالي، وسطر جديد خام خطأ نحوي، وتهريبات ثمانية أو ست عشرية تبدو سليمة في السجل قد تُقطع أو تصبح غير قانونية عند لصقها في المصدر. يحوّل مهرب سلاسل C هذا النص العادي إلى جسم حرفيّة آمن (وإلى حرفيّة بين اقتباسات جاهزة للصق)، ويعكس الخريطة نفسها عند الحاجة إلى استعادة الأحرف الأصلية. يتعامل وضع escape مع أسلوب الاقتباس الذي تختاره—مزدوج لسلاسل "..." العادية أو مفرد لثوابت الحرف—إضافة إلى الشرطات المائلة العكسية وتهريبات التحكم المعتادة، واختياريًا أشكال hex أو أسماء الأحرف العامة لغير ASCII. يفهم وضع unescape التسلسلات \n و\r و\t و\\ و\" و\' و\?
كيف تعمل تهريبات سلاسل C وC++ عمليًا
حرفيّة السلسلة في C أو C++ سلسلة أحرف بين اقتباسات مزدوجة؛ تستخدم ثوابت الحرف اقتباسات مفردة. داخل ذلك تبدأ الشرطة المائلة العكسية تهريبًا: \\ تصبح شرطة واحدة، و\" تنهي سلسلة مزدوجة الاقتباس بأمان، و\' تفعل المثل لثوابت الحرف، و\? موجود كي لا تسيء سلاسل الأدوات الحساسة للرسوم الثلاثية قراءة علامة الاستفهام.
تهريبات التحكم المسماة قياسية في C وC++: \n سطر جديد، و\r إرجاع عربة، و\t جدولة، إضافة إلى \a تنبيه و\b مسافة خلفية و\f تغذية نموذج و\v جدولة رأسية. شكلان عدديان يهمان يوميًا في كود الأنظمة: التهريب الثماني شرطة مائلة عكسية تليها من رقم إلى ثلاثة أرقام ثمانية (لذا \0 بايت صفري و\101 الحرف A)، والتهريب الست عشري \x متبوعًا برقم hex واحد أو أكثر. يقبل C99 وC++ أيضًا أسماء الأحرف العامة \uXXXX و\UXXXXXXXX لمصدر Unicode قابل للنقل.
تطبق هذه القدرة تلك القواعد بشكل حتمي. في وضع escape تمسح كل وحدة رمز، وتستبدل الأحرف الخاصة بأقصر تهريب آمن لأسلوب الاقتباس المختار، وتستخدم التحكم المسمى عند وجوده، وتلجأ إلى \xHH لباقي بايتات C0، وتعيد كتابة كل حرف غير ASCII اختياريًا عندما يكون hex بقيمة true. في وضع unescape تحلل التسلسلات نفسها إلى أحرف وترفض الشرطات النهائية و\x أو الأسماء العامة غير المكتملة والأرقام غير hex ونقاط الرمز خارج النطاق وتهريبات الحروف المجهولة التي تكون سلوكًا غير معرّف في قراءة صارمة للغة.
ما الذي ترسلونه وما الذي تستلمونه
أرسلوا حقل سلسلة مطلوبًا باسم text وحقولًا اختيارية mode وquote وhex. يحوّل وضع escape النص العادي إلى جسم حرفيّة C/C++ في result ويعيد أيضًا literal: الجسم نفسه ملفوفًا بالاقتباسات المختارة للصق في المصدر. يعكس وضع unescape تسلسلات التهريب في text ويعيد السلسلة العادية المستعادة في result دون حقل literal.
الافتراضي ل quote هو double؛ عيّنوا single عندما تكون الوجهة ثابت حرف أو سلسلة باقتباس مفرد في لهجة قريبة—يفرض escape التهريب لذلك الفاصل فقط حتى تبقى الفواصل العليا خامًا داخل الأجسام مزدوجة الاقتباس. الافتراضي ل hex هو false فتبقى الحروف غير ASCII أحرفًا حرفيّة في الجسم المهرَّب؛ عيّنوه true عندما تحتاجون مصدرًا ASCII فقط يصمد أمام ترميزات قديمة وتركيبات رؤوس وسلاسل أدوات ترجمة متقاطعة تفشل مع UTF-8 في الحرفيّات. يعيد الرد mode وquote وhex وtext الأصلي وresult وطول result.
إخفاقات التحقق لا تستهلك الرصيد المدفوع مسبقًا. تشمل الفحوصات الكلاسيكية تهريب تحية تتضمن اقتباسات وسطرًا جديدًا، وإلغاء تهريب جسم يستخدم \xE9 ل é أو \101 ل A، والتهريب مع hex true ليصبح غير ASCII أشكال \x أو \u، ورفض سلسلة تنتهي بشرطة مائلة عكسية عارية. استخدموا نموذج المتصفح المجاني للفحوص السريعة وعروض الصف، ثم استدعوا العقد نفسه من السكربتات عند الحاجة إلى توليد تركيبات جماعي أو متجهات انحدار.
أين يبرهن مهرب سلاسل C على قيمته
مولّدات الكود التي تصدر جداول إعداد وخرائط توطين وتركيبات اختبار في C أو C++ يجب أن تهرّب كل حقل نص حر قبل كتابته داخل الاقتباس، وإلا فإن اقتباسًا مزدوجًا واحدًا في اسم منتج يفسد الملف المولَّد ويكسر البناء. فرق البرمجيات الثابتة المدمجة وبرامج تشغيل الأجهزة تلصق تفريغات بروتوكول تحتوي أصلًا تهريبات ثمانية وست عشرية وتحتاج مسار unescape يفشل بصوت عالٍ عند تسلسلات \x المقطوعة بدل اختراع بايتات. مواقع التوثيق وكتب الوصفات التي تعرض أمثلة للنسخ واللصق تحتاج مسار تهريب موثوقًا لتبقى عينات المستخدم حرفيّات سلسلة C صالحة.
فرق الدعم والأمن تقارن سلاسل ذات مظهر ثنائي من السجلات بتركيبات المصدر وتريد صفحة مخصصة لتهريبات أسلوب C بدل أداة كيانات JavaScript أو HTML، لأن مجموعة التهريب المسموحة ومعنى الثماني يختلفان. أنابيب QA وCI تقارن متجهات ذهبية للتهريب وإلغائه عبر المضيفات حتى يكون السطر الجديد دائمًا \n تحت الاقتباس المزدوج لا كسرًا خامًا يفشل الترجمة. مؤلفو المناهج الذين يعلّمون صياغة سلاسل C يريدون أمثلة تذكر الثماني والست عشري صراحة، وهذه نية البحث التي تلتقطها هذه الصفحة.
إذا احتجتم تهريبات سلاسل JavaScript أو كيانات HTML أو ترميز النسبة المئوية ل URL، عاملوها نوايا وصفحات هبوط منفصلة بدل إثقال صفحة مهرب سلاسل C هذه.
حالات الاستخدام
حرفيّات سلسلة آمنة في كود C/C++ المولَّد
هرّبوا العناوين والرسائل وقيم الإعداد النصية الحرة قبل كتابتها في حرفيّات سلسلة C باقتباس مزدوج أو ثوابت حرف باقتباس مفرد.
فك تهريبات ثمانية وست عشرية من السجلات
ألغوا تهريب أجسام سلسلة بأسلوب C من سجلات البرمجيات الثابتة والتذاكر والملفات الذهبية إلى نص مقروء، مع فشل صارم عند التهريبات غير المكتملة أو غير القانونية.
إعادة كتابة hex ب ASCII فقط لسلاسل الأدوات
هرّبوا مع hex true لتصبح الأحرف غير ASCII تسلسلات \xHH أو \uXXXX أو \UXXXXXXXX مناسبة لمستودعات ASCII فقط والمترجمات الصارمة.
الأسئلة الشائعة
ما الفرق بين result وliteral؟
result هو الجسم المهرَّب دون اقتباسات محيطة. literal (وضع escape فقط) يلف ذلك الجسم بأسلوب الاقتباس المختار حتى تلصقوا سلسلة C/C++ كاملة في المصدر.
هل يمكن التهريب وإلغاؤه معًا؟
نعم. عيّنوا mode إلى escape (الافتراضي) لترميز النص العادي، أو mode إلى unescape لاستعادة النص من جسم حرفيّة سلسلة C/C++.
ما أساليب الاقتباس المدعومة؟
double (الافتراضي) لحرفيّات السلسلة العادية، وsingle لأسلوب ثوابت الحرف. وضع escape يهرّب فقط الفاصل الذي اخترتموه.
ماذا يحدث إذا كانت سلسلة التهريب مكتوبة بشكل خاطئ؟
يتوقف إلغاء التهريب فورًا ويوضح المشكلة بدل التخمين. تُرفض الشرطة المائلة العكسية في النهاية، و\x الناقصة، والأرقام غير الست عشرية، ونقاط الترميز خارج النطاق، والحروف غير المعروفة بعد الشرطة.
ماذا تعني صيغة ثمانية مثل \101؟
هي شرطة مائلة عكسية يتبعها رقم ثماني من خانة إلى ثلاث خانات، وتمثل المحرف الذي يحمل تلك القيمة. فمثلًا \0 هو المحرف الفارغ، و\101 هو الحرف A الكبير.
أدوات ذات صلة
للمطوّرين — الوصول عبر API
كل ما في هذه الصفحة متاح برمجيًا. هذا القسم موجّه للفرق التقنية التي تريد ربط الأداة بأنظمتها الخاصة؛ بقية المستخدمين يمكنهم استخدام الأداة أعلاه مباشرة دون الحاجة لقراءة ما يلي.
الـEndpoint
صادِق على طلبك بترويسة Bearer، وأرسل طلب POST واحدًا لتدخل مهمتك قائمة التنفيذ فورًا؛ ثم تستلم النتيجة عبر webhook أو رابط موقّع.
استدعِ الخدمة من بيئتك
curl -X POST https://api.kit.forhosting.com/enc/c-escape \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"Hello \"world\"\nline 2"}'const res = await fetch("https://api.kit.forhosting.com/enc/c-escape", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "Hello \"world\"\nline 2"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/enc/c-escape",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "Hello \"world\"\nline 2"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/enc/c-escape", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"Hello \\"world\\"\\nline 2"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"Hello \"world\"\nline 2"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/enc/c-escape", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)مثال على الطلب
{
"text": "Hello \"world\"\nline 2"
}مثال على الاستجابة
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "enc.c_escape",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}الواجهة غير متزامنة: تستلم task_id فور الإرسال، ويمكنك الاستعلام عن الحالة بمعدل طلب واحد في الثانية.
الأسعار
السعر معلن كما تراه: لا tokens ولا نظام نقاط؛ وإن فشلت المهمة فلن تُحاسَب عليها.
الأخطاء
| HTTP | الرمز | المعنى |
|---|---|---|
401 | unauthorized | مفتاح الوصول مفقود أو غير صالح؛ تحقق من ترويسة Bearer في طلبك. |
402 | insufficient_balance | رصيدك لا يكفي لتنفيذ هذه المهمة؛ أعد شحن الرصيد ثم أعد المحاولة. |
404 | unknown_type | نوع المهمة المطلوب غير موجود في الكتالوج — راجع الاسم المرسل في الطلب. |
429 | rate_limited | تجاوزت الحد المسموح من الطلبات؛ انتظر قليلًا ثم أعد المحاولة. |
ملاحظات تقنية
و\a و\b و\f و\v والثماني من رقم إلى ثلاثة أرقام و\xHH و\uXXXX و\UXXXXXXXX، ويفشل فورًا ب invalid_input عند شرطة مائلة عكسية في النهاية أو hex غير مكتمل أو حروف تهريب مجهولة، بدل اختراع نفايات نصف مفكوكة.
كيف تعمل تهريبات سلاسل C وC++ عمليًا
المسار عمل سلاسل خالص بلا شبكة وبلا بذور عشوائية وبلا طوابع ساعة جدارية، لذا المدخلات المتطابقة تنتج دائمًا JSON متطابقًا. تسعير استدعاءات API الناجحة هو الأساس المنشور $0.002 لكل عنصر، وإخفاقات التحقق لا تستهلك الرصيد المدفوع مسبقًا.
ما الذي ترسلونه وما الذي تستلمونه
عند إغفال mode يكون الافتراضي escape فيظل الحمولة الواحدة مفيدة. غياب text والكائنات غير السلسلة وقيم mode أو quote غير المدعومة والقيم غير القابلة للقراءة كمنطقي ل hex والسلاسل الأطول من الحد الموثق والشرطات النهائية وتهريبات hex غير المكتملة وأسماء الأحرف العامة غير المكتملة والأرقام غير hex ونقاط الرمز غير القانونية وحروف التهريب المجهولة تفشل كلها ب invalid_input ورسالة إنجليزية واضحة. تسعير API عند النجاح هو الأساس المنشور $0.002 لكل عنصر.
أين يبرهن مهرب سلاسل C على قيمته
ولأن هذه القدرة محرك تحليل خالص، يكون تسعير API هو الأساس المنشور $0.002 لكل عنصر ناجح، والتحقق الفاشل لا يستهلك الرصيد.
أسئلة تقنية
ماذا يحدث إذا كان تسلسل التهريب مشوهًا؟
يفشل unescape ب invalid_input مع ذكر الموضع والتسلسل السيئ (مثل شرطة مائلة عكسية نهائية أو \xHH غير مكتمل أو تهريب حرف مجهول). لا تُحسب إخفاقات التحقق.
كم التكلفة؟
أداة المتصفح مجانية وتعمل محليًا. تستخدم طلبات API رصيد KIT المدفوع مسبقًا بمقدار $0.002 لكل عنصر ناجح؛ الإدخال غير الصالح لا يُحسب.