دليلك الكامل لتشفير وفك تشفير روابط الإنترنت (URL Percent-Encoding)
تعتمد بروتوكولات الإنترنت (HTTP/HTTPS) على مجموعة محدودة من الرموز اللاتينية غير المحجوزة في صياغة العناوين. عند تضمين حروف عربية، أو مسافات، أو رموز خاصة مثل (&, ?, =, #, /) داخل الروابط، يجب تحويلها إلى ما يُعرف بـ Percent-Encoding (تشفير النسبة المئوية) لضمان وصول الطلب إلى السيرفر دون حدوث أخطاء 404 أو تشويه للبيانات.
ما الفرق بين encodeURI و encodeURIComponent؟
- encodeURI: يُستخدم لتشفير رابط كامل مع الحفاظ على الرموز الأساسية للبروتوكول مثل
http://و/و?و&دون تشفيرها. - encodeURIComponent: يُستخدم لتشفير قيمة مفتاح معين أو متغير مرسل داخل الرابط، ويقوم بتشفير جميع الرموز الخاصة بما فيها السلاش وعلامات الاستفهام.
- decodeURIComponent: يعيد النص المشفر إلى شكله الأصلي المقروء باللغة العربية.
الأسئلة الأكثر شيوعاً
لماذا تظهر الروابط العربية برموز غريبة مثل %D8%B9%D8%B1%D8%A8%D9%8A؟
لأن متصفحات الويب تشفر الحروف العربية بنظام UTF-8، وكل حرف عربي يتحول إلى رمزين مشفرين بالنسبة المئوية ليفهمها الخادم.