Tarayıcınız güncel değil

Bu siteyi görüntülemek için tarayıcınızın veya cihazınızın işletim sisteminin güncellenmesi gerekiyor.

Your browser is out of date. Please update iOS or your browser to view this site.

تخطي إلى المحتوى الرئيسي
Gizke.com
المدونة

مُرمِّز ومحلِّل روابط URL

يعمل على جهازك. لا يُرسل أي شيء.
يشفّر كل حرف محجوز. استخدم هذا لقيمة واحدة موجهة إلى سلسلة استعلام أو جزء من المسار.

ستظهر النتيجة هنا

شفّر أو فك تشفير الروابط وسلاسل الاستعلام، أو حلّل رابطًا كاملاً إلى أجزائه وعدّل سلسلة الاستعلام في جدول حي - كل ذلك داخل متصفحك.

لا يمكن للرابط أن يحتوي بأمان إلا على مجموعة محدودة من أحرف ASCII - أي شيء آخر، مثل مسافة أو علامة & أو حرف غير لاتيني، يجب ترميزه بالنسبة المئوية على شكل %XX قبل أن يتمكن من الانتقال داخله. تقوم هذه الأداة بتشفير النص وفك تشفيره باستخدام نفس القواعد التي تستخدمها المتصفحات، كما تحلّل بشكل منفصل رابطًا كاملاً إلى بروتوكوله ومضيفه ومنفذه ومساره وسلسلة الاستعلام والتجزئة (hash) الخاصة به، بحيث يمكنك تعديل معاملات الاستعلام في جدول ومشاهدة إعادة بناء الرابط مباشرة. يعمل كل شيء محليًا داخل متصفحك - لا يُرفع شيء إلى أي مكان أبدًا.

الأسئلة الشائعة

ما هو الترميز بالنسبة المئوية؟
الترميز بالنسبة المئوية (يُسمى أيضًا ترميز الروابط) يستبدل الحرف بعلامة % متبوعة بقيمته السداسية العشرية المكوّنة من رقمين، وتتكرر هذه العملية لكل بايت من تمثيله بترميز UTF-8. بهذه الطريقة يمكن للرابط أن يحمل مسافة (%20)، أو علامة & (%26)، أو رمزًا تعبيريًا دون الخلط بين هذه الأحرف وبين قواعد بناء الرابط نفسه.
ما الفرق بين encodeURIComponent وencodeURI؟
تقوم encodeURIComponent بتشفير كل شيء باستثناء مجموعة صغيرة من الأحرف غير المحجوزة، مما يجعلها الخيار الصحيح لقيمة واحدة - معامل استعلام أو جزء من مسار - لأنها تشفّر أيضًا أحرفًا مثل & و= التي قد تُقرأ لولا ذلك كجزء من بنية الرابط. أما encodeURI فهي مخصصة لرابط كامل: تترك الأحرف البنيوية مثل :، /، ?، &، و# دون تغيير حتى يستمر الرابط في العمل، ولا تشفّر إلا الأحرف التي لا يمكن للرابط احتواءها فعليًا، مثل المسافات. تمرير رابط كامل عبر encodeURIComponent يُفسده، لأنها ستشفّر أيضًا الشرطات المائلة والنقطتين الرأسيتين.
هل ما زال ينبغي استخدام escape() وunescape()؟
لا. أُهملت كلتا الدالتين منذ أول إصدار من معيار جافاسكريبت الذي قدّم أيضًا encodeURIComponent، لأن escape() لا تشفّر الأحرف غير ASCII بالطريقة التي يتوقعها HTTP والروابط الحديثة - فهي تستخدم لكل ما هو خارج Latin-1 صيغة غير قياسية %uXXXX لا تستطيع decodeURIComponent قراءتها مرة أخرى. تحتفظ هذه الأداة بهذا الخيار فقط لتمكينك من فحص ما ينتجه نظام قديم.
لماذا تتحول علامة + في سلسلة الاستعلام إلى مسافة؟
تأتي سلاسل الاستعلام تاريخيًا من إرسال نماذج HTML، التي تستخدم صيغة application/x-www-form-urlencoded: فهي تُرمّز المسافة الفعلية كـ + بدلاً من %20، ويتعامل محلل هذه الأداة (وكذلك URLSearchParams في جافاسكريبت) مع كليهما كمسافة عند فك التشفير. وإذا احتاجت قيمة ما فعليًا إلى علامة زائد حرفية، فيجب ترميزها هي نفسها بالنسبة المئوية كـ %2B.
ماذا يحدث مع معامل متكرر مثل ?tag=a&tag=b؟
لا يُفقد شيء - تحافظ هذه الأداة على كل ظهور، بترتيبه، كسطر مستقل في جدول معاملات الاستعلام، تمامًا كما تجمع معظم أطر عمل الخوادم مفتاحًا متكررًا في قائمة. تعديل سطر أو إزالته لا يؤثر على البقية.
لماذا افترض المحلل https:// لرابطي؟
سلسلة مثل example.com/path ليس لها بروتوكول، لذا لا يستطيع المتصفح ولا هذه الأداة معرفة ما إذا كانت عنوان ويب، أو مخصصة لبروتوكول آخر، أو مجرد نص عادي. وبدلاً من رفضها، يفترض المحلل https:// حتى تتمكن مع ذلك من فحصها وتعديلها - يظهر تلميح في كل مرة يحدث فيها ذلك، ويمكنك تصحيح حقل البروتوكول إذا كان المقصود مخططًا مختلفًا.

شارك هذه الأداة

المدونةمن نحناتصل بناشروط الاستخدامسياسة الخصوصية