ترميز الروابط
ترميز الأحرف الخاصة للروابط.
ترميز الروابط
جاهزما هو ترميز URL؟
ترميز URL (يُعرف أيضاً بالترميز المئوي أو Percent-Encoding) هو عملية تحويل الأحرف غير المسموح بها أو ذات المعنى الخاص في عنوان URL إلى تنسيق آمن يمكن إرساله عبر الإنترنت. يُستبدَل كل حرف غير آمن بعلامة النسبة المئوية (%) متبوعةً برقمَين سادسَ عشريَّين يمثّلان قيمة البايت للحرف بترميز ASCII أو UTF-8. مثلاً، المسافة تصبح %20، والعلامة & تصبح %26، وحرف العربية "م" يصبح %D9%85. يوفر مُرمِّز URL من Toolsiro ثلاثة أوضاع: ترميز URL كامل، وترميز مكوّن واحد، ومنشئ معاملات URL يبني سلاسل استعلام مرمَّزة بشكل صحيح من أزواج المفاتيح والقيم.
لماذا يكون ترميز URL ضرورياً؟
لا يمكن لعناوين URL أن تحتوي إلا على مجموعة محدودة من أحرف ASCII الآمنة. الأحرف خارج هذه المجموعة — بما فيها المسافات والنصوص غير اللاتينية (العربية والصينية والعبرية) وعلامات الترقيم — يجب ترميزها قبل أن تظهر في عنوان URL.
بدون ترميز URL، سينكسر عنوان مثل https://example.com/search?q=كتب عربية في معظم خوادم الويب والمتصفحات. بعد الترميز: https://example.com/search?q=%D9%83%D8%AA%D8%A8%20%D8%B9%D8%B1%D8%A8%D9%8A%D8%A9
encodeURI مقابل encodeURIComponent — الفرق
- encodeURI(url): يُرمِّز عنوان URL كاملاً. لا يُرمِّز الأحرف ذات المعنى الخاص في URLs مثل
; , / ? : @ & = + $ #. استخدمه عند ترميز عنوان URL كامل مع الحفاظ على بنيته. - encodeURIComponent(value): يُرمِّز مكوّناً واحداً من URL (قيمة معامِل استعلام أو جزء مسار). يُرمِّز كل شيء ما عدا:
A–Z a–z 0–9 - _ . ! ~ * ' ( ). استخدمه للقيم الفردية التي ستظهر كجزء من سلسلة استعلام.
الفرق الجوهري: إذا كانت قيمة المعامِل تحتوي على & أو =، فيجب استخدام encodeURIComponent — وإلا فسيفسّر الخادم هذه الأحرف كفواصل معاملات.
ترميز URL للعربية ويونيكود
تدعم المتصفحات والخوادم الحديثة معرّفات الموارد الدولية (IRIs) التي تسمح بأحرف يونيكود (بما فيها العربية) في URLs. ومع ذلك، على مستوى البروتوكول، لا تزال هذه الأحرف تُنقَل كتسلسلات UTF-8 مشفرة بالنسبة المئوية. كلمة "مرحبا" تُرمَّز كـ: %D9%85%D8%B1%D8%AD%D8%A8%D8%A7.
أدوات ذات صلة
لعكس العملية، استخدم محلل URL. لترميز البيانات الثنائية في شكل نصي، استخدم مُرمِّز/محلل Base64.