ليش الروابط العربية بتطلع رموز متل %D9%85؟
الروابط بالأصل ما بتقبل إلا حروف إنجليزية وأرقام وشوية رموز. فلما يكون بالرابط حرف عربي، بيتحوّل لبايتات UTF-8 (كل حرف عربي = بايتين)، وكل بايت بينكتب % وبعدها رقمين ست عشريين. مثلاً "م" = %D9%85، فكلمة "مصر" بتصير %D9%85%D8%B5%D8%B1. هاد اسمو ترميز النسبة المئوية (Percent-encoding) حسب معيار RFC 3986.
المتصفحات الحديثة بتعرض الرابط عربي بشريط العنوان، بس لما تنسخو بيطلع مرمّز. الصقو بتبويب "تحليل رابط" وبترجعلك النسخة المقروءة.
الفرق بين encodeURIComponent و encodeURI
- encodeURIComponent: بيرمّز كمان رموز الرابط متل
/ ? & = #. هو الصح لما تحط قيمة جوّا رابط، مثلاً نص بحث:?q=+ القيمة المرمّزة، حتى ما تكسر&بالنص الرابط. - encodeURI: بيترك رموز الرابط متل ما هي، ومناسب لرابط كامل فيه عربي أو مسافات.
- نموذج (form): الصيغة اللي بتبعتها نماذج HTML، المسافة فيها
+بدل%20.
غلطة شائعة: استعمال encodeURI لقيمة فيها & أو =، فبيتقسّم المعامل لمعاملين.
الترميز المكسور
أغلب الأدوات بتوقف وبتطلع خطأ (URIError) إذا في % لحالها أو تسلسل ناقص متل %D8. هون الفك بيكمل: الأجزاء السليمة بتنفك، والمكسورة بتضل متل ما هي مع تنبيه بمكانها.
تحليل الرابط ومعاملات التتبّع
تبويب "تحليل رابط" بيفصّل البروتوكول والنطاق (ومع النطاقات العربية بيعرض صيغة Punycode متل xn--mgbh0fb.xn--kgbechtv = مثال.إختبار) والمنفذ والمسار وكل معامل بقيمتو المفكوكة. وإذا الرابط فيه معاملات تتبّع متل utm_source أو fbclid أو gclid، بيعطيك نسخة نظيفة منها قبل ما تشاركو.
أسئلة شائعة
- كيف أحول رابط عربي مرمز إلى نص مقروء؟
- الصق الرابط بخانة "النص المرمّز" أو بتبويب "تحليل رابط"، وبيطلع فوراً بالحروف العربية. مثلاً %D9%85%D8%B5%D8%B1 بتصير "مصر".
- ما الفرق بين %20 و + في الروابط؟
- الاتنين بيعنوا مسافة، بس + بتنفهم مسافة بس بجزء الاستعلام بصيغة النماذج (form). بالمسار، + بتضل + حرفياً، فالأضمن %20.
- هل يؤدي حذف معاملات utm إلى تعطيل الرابط؟
- عادةً لأ، لأنها للإحصائيات بس. بس بعض المعاملات التانية ضرورية، فالأداة بتشيل معاملات التتبّع المعروفة بس وبتترك الباقي.
- هل تُرسَل الروابط إلى خادم؟
- لأ. كل التحويل والتحليل بمتصفحك، والأداة ما بتفتح الرابط ولا بتتصل فيه.