ما هو ترميز الروابط URL؟
ترميز الروابط، المعروف أيضًا باسم الترميز بالنسبة المئوية (percent-encoding)، هو آلية يحددها معيار RFC 3986 لتمثيل أي بيانات داخل معرّف الموارد الموحّد (URI). فالكثير من الرموز — مثل المسافات والشرطات المائلة وعلامات الاستفهام وعلامات العطف (&) والحروف غير اللاتينية (ASCII) — لها معانٍ خاصة أو أنها ببساطة غير آمنة داخل الرابط. ويعمل الترميز بالنسبة المئوية على استبدال كل بايت من هذا النوع بعلامة نسبة مئوية (%) متبوعة برقمين بالنظام السداسي العشري يمثلان قيمة ذلك البايت.
كيفية استخدام هذه الأداة
اختر ترميز لتحويل النص العادي إلى سلسلة آمنة للاستخدام في الروابط، أو اختر فك الترميز لإعادة سلسلة مرمّزة بالنسبة المئوية إلى نص قابل للقراءة. اكتب النص أو الصقه ثم نفّذ العملية. كما تعرض الأداة عدد الأحرف في المدخلات والمخرجات حتى ترى مقدار التوسّع الذي أحدثه الترميز.
شرح الصيغة
مجموعة الرموز غير المحجوزة هي A–Z a–z 0–9 - _ . ~. ويُرمَّز أي بايت يقع خارج هذه المجموعة.
على سبيل المثال، رمز المسافة قيمته البايتية 32، أي 0x20 بالنظام السداسي العشري، فيصبح %20. ويُحوَّل النص أولًا إلى بايتات باستخدام ترميز UTF-8، لذا تُرمَّز الرموز متعددة البايتات (مثل الرموز التعبيرية أو الحروف ذات العلامات) بايتًا بايتًا. أما فك الترميز فيعكس العملية:
إذ يُقرأ كل ثلاثي %XX بوصفه بايتًا سداسيًا عشريًا، ثم تُفسَّر مجموعة البايتات المجمّعة باعتبارها UTF-8.
مثال تطبيقي
عند ترميز hello world!: تبقى الحروف h-e-l-l-o كما هي لأنها رموز غير محجوزة. وتتحول المسافة إلى %20، وتتحول علامة التعجب (البايت 33 = 0x21) إلى %21. وتكون النتيجة hello%20world%21.
الأسئلة الشائعة
هل تُرمَّز علامة الجمع (+) كمسافة؟ عند الترميز، تتحول المسافات إلى %20 (وفق أسلوب RFC 3986). أما عند فك الترميز، فتُعامَل علامة + الصريحة باعتبارها مسافة توافقًا مع بيانات النماذج (form data).
لماذا تبقى بعض الرموز دون تغيير؟ الحروف والأرقام والرموز الأربعة غير المحجوزة - _ . ~ لا تحتاج أبدًا إلى الترميز بموجب معيار RFC 3986.
هل تدعم الأداة يونيكود (Unicode)؟ نعم. تُعالَج النصوص بترميز UTF-8، لذا تُرمَّز الرموز الواقعة خارج نطاق ASCII على شكل عدة بايتات %XX ويُعاد فك ترميزها بشكل صحيح.