ما هو ترميز الرابط
لا يحمل الرابط إلا مجموعة صغيرة من حروف ASCII. ويسمح المعيار RFC 3986 الخاص بعناوين الويب بمرور الحروف اللاتينية والأرقام و- . _ ~ كما هي، ويعطي حروفًا مثل / ? # & = معنى في بنية الرابط. أما أي شيء آخر، ومنه المسافة وكل حرف عربي، فيُكتب على شكل بايتات UTF-8، وكل بايت علامة % يتبعها رقمان ست عشريان. فتصبح المسافة %20، ويصبح الحرف «د» الذي يشغل بايتين %D8%AF، أي ستة أحرف لحرف واحد. وفك الترميز يعكس ذلك. يفعل المتصفح هذا تلقائيًا في شريط العنوان، لذلك يبدو الرابط العربي طبيعيًا هناك ثم يتحول إلى سلسلة طويلة من %D8 عند لصقه في بريد إلكتروني أو جدول بيانات أو تطبيق محادثة.
encodeURIComponent أم encodeURI: أيهما تستخدم
يطابق الوضعان الدالتين اللتين يستخدمهما المطورون في JavaScript. «قيمة واحدة» يعمل مثل encodeURIComponent، فيرمّز أيضًا / ? # & = + , ; : @ و$ لأن هذه الحروف داخل القيمة تكسر الرابط. استخدمه لكلمة بحث أو قيمة استعلام واحدة أو جزء من المسار، أو لرابط كامل تمرره قيمةً داخل رابط آخر كروابط إعادة التوجيه والمشاركة. و«رابط كامل» يعمل مثل encodeURI، فيترك حروف البنية كما هي ليبقى الرابط عاملًا، ولا يرمّز إلا المسافات والنص العربي وغيره من النصوص غير اللاتينية وبعض الرموز غير الآمنة. إن مرّرت رابطًا كاملًا في وضع «قيمة واحدة» تتحول شرطاته المائلة إلى %2F فلا يعود رابطًا، وإن مرّرت قيمة فيها & في وضع «رابط كامل» تقسمها & إلى معاملين.
- مثال على قيمة واحدة: a b&c تصبح a%20b%26c
- مثال على رابط كامل: https://example.com/a b?x=1&y=2 يصبح https://example.com/a%20b?x=1&y=2
- أسلوب النماذج: فعّل خيار «اكتب المسافة علامة +» لتحصل على a+b%26c، وهي الصيغة التي ترسلها نماذج HTML
الروابط العربية وأسماء النطاقات العربية
يُرمَّز المسار أو الاستعلام العربي بايتًا بايتًا، ويعرض جدول المقارنة الصيغتين مع طول كل منهما، فترى أن رابطًا مختصرًا عربيًا من 20 حرفًا يصبح نحو 120 حرفًا عند الإرسال. أما أسماء النطاقات فتختلف، إذ لا تُرمَّز بعلامة % أصلًا، بل يتحول النطاق العربي إلى صيغة punycode، وهي صيغة ASCII تبدأ بـ xn-- ويبحث عنها نظام أسماء النطاقات DNS. يجري وضع «رابط كامل» هذا التحويل باستخدام محرك الروابط في متصفحك نفسه، ويعرض وضع «فك الترميز» النطاق المكتوب بصيغة xn-- بالعربية من جديد، فتتحقق من العنوان الذي يشير إليه الرابط فعلًا.
الروابط التالفة والترميز المزدوج والقوائم
تتوقف أداة فك الترميز المدمجة في المتصفح بخطأ عند أول تسلسل تالف، مثل علامة % يتبعها حرفان ليسا ست عشريين، أو بايتات مقطوعة في منتصف حرف عربي. أما هذه الأداة فتكمل العمل: تفك بقية السطر، وتترك الجزء التالف كما كُتب تمامًا، وتذكر كل مشكلة مع رقم السطر وموضع الحرف. وتكشف أيضًا الترميز المزدوج، فوجود %25 (علامة % مرمّزة) يعني أن الرابط رُمّز مرتين، ويمكنها فكه حتى يصبح نظيفًا. وفي الوضع المجمّع يُعالج كل سطر وحده، ويضع ملف CSV الصيغة المقروءة والصيغة المرمّزة وطولها وأي مشكلات في أعمدة منفصلة.