النص العربي يُكتب من اليمين إلى اليسار، لكن تسلسلات الإفلات (escape sequences) مثل \n أو م هي دائمًا رموز ASCII تُكتب من اليسار إلى اليمين. عند إفلات نص عربي يحتوي على أسطر جديدة أو رموز Unicode، تختلط خوارزمية العرض ثنائية الاتجاه (bidi) بين الجزء العربي والجزء اللاتيني، فتظهر السلسلة الناتجة في المحرر بترتيب بصري مربك جدًا رغم أن الترتيب الفعلي للبايتات في الملف صحيح تمامًا — وهذا فخ شائع عند مراجعة الكود يدويًا لا عند تنفيذه.
الإفلات داخل سلسلة JavaScript/JSON
في السلاسل النصية لـ JS وفي JSON، تُفلَت الرموز الخاصة بشرطة مائلة عكسية: \" للعلامة الاقتباسية، \n لسطر جديد، \\ للشرطة المائلة العكسية نفسها. يشترط JSON إضافيًا أن تُكتب كل السلاسل بعلامات اقتباس مزدوجة — بخلاف JS الذي يسمح أيضًا بالعلامات المفردة.
الإفلات في أوامر الطرفية (shell)
في سطر الأوامر، الرموز الخاصة تشمل المسافة، علامات الاقتباس، إشارة الدولار، النجمة، وغيرها — لها معنى خاص بالنسبة للـ shell. المسافة داخل وسيط (argument) لأمر ما يجب إفلاتها أو وضع الوسيط كاملًا بين علامتي اقتباس، وإلا قسّمها الـ shell إلى وسيطين منفصلين.
الإفلات في التعبيرات النمطية (regex)
في التعبيرات النمطية، رموز مثل النقطة أو النجمة أو الأقواس لها معنى خاص (أي حرف، محدد تكرار، مجموعة). لمطابقتها حرفيًا لا كرموز خاصة، تُوضع شرطة مائلة عكسية أمامها: \. يطابق نقطة حرفية فقط، لا "أي حرف".
لماذا يحتاج كل سياق إلى إفلات خاص به
أخطاء "الإفلات المزدوج" أو "الإفلات الناقص" من أكثر أسباب انكسار الكود شيوعًا عند إدراج نص من المستخدم (مثل مسار ملف يحتوي على مسافة) داخل أمر أو سلسلة نصية. الإفلات الصحيح يعتمد على المكان الذي يُدرَج فيه النص بالضبط، لا على النص نفسه.
لماذا تحتاج هذه الأداة
- تجهيز نص عربي من المستخدم لإدراجه بأمان في طلب JSON، مع الانتباه إلى أن الشرطات المائلة الناتجة تُقرأ من اليسار لليمين وسط نص عربي.
- بناء أمر shell بوسيط ديناميكي دون خطر حقن أوامر.
- إفلات الرموز الخاصة قبل استخدام النص كنمط حرفي في تعبير نمطي.
الإفلات المزدوج في السياقات المتداخلة
حين يمر النص عبر سياقين متتاليين — مثلًا سلسلة تُدرَج داخل JSON، ثم يُمرَّر هذا JSON كوسيط لأمر shell — يجب تطبيق الإفلات بالترتيب الصحيح: أولًا للسياق الداخلي (JSON)، ثم للسياق الخارجي (shell). ترتيب خاطئ أو تخطي أحد المستويين سبب شائع لبقاء سلسلة "مُفلَتة بشكل صحيح" معطوبة عمليًا.