تخطَّ إلى المحتوى الرئيسي
Tooletto

مُرمِّز ومُفكِّك ترميز URL

رمِّز نصًا للاستخدام الآمن في عنوان URL، أو فُك ترميز عناوين URL المُرمَّزة بالنسبة المئوية مرة أخرى إلى نص قابل للقراءة. يتعامل مع Unicode بشكل صحيح ويوفر وضعي مكوِّن وعنوان URL كامل.

  • الملفات لا تغادر جهازك أبدًا
  • مجاني، بدون تسجيل
  • بدون علامات مائية
  • يعمل دون اتصال بعد التحميل
Loading tool…

كيفية استخدام مُرمِّز ومُفكِّك ترميز URL

  1. 1

    اختر اتجاهًا

    رمِّز نصًا لعنوان URL، أو فُك ترميز عنوان URL مُرمَّز مرة أخرى إلى نص.

  2. 2

    اختر الوضع

    وضع المكوِّن يُهرِّب كل شيء؛ وضع عنوان URL الكامل يحافظ على البنية.

  3. 3

    انسخ النتيجة

    تُحدَّث النتائج أثناء الكتابة.

لماذا لا يمكن لعنوان URL احتواء أحرف عشوائية ببساطة

تعتمد بنية عنوان URL على أن أحرفًا محددة — `/` لفصل أجزاء المسار، `?` لتقديم سلسلة الاستعلام، `&` لفصل المعاملات، `#` لجزء — تحمل معنى بنيويًا ثابتًا أينما ظهرت. إذا احتوت قيمة تُوضَع داخل عنوان URL، مثل مصطلح بحث أو اسم مستخدم، أحد تلك الأحرف نفسها حرفيًا، يجب أن تكون هناك طريقة ما للتمييز بين "هذه العلامة & جزء من القيمة الفعلية" و"هذه العلامة & تفصل معاملي استعلام". الترميز النسبي المئوي هو تلك الآلية: أي حرف بمعنى بنيوي، عندما يحتاج الظهور كبيانات حرفية بدلًا من بنية، يُستبدَل بـ`%` متبوعة بقيمة بايته السداسية عشرية، لذا يتحول `&` إلى `%26` ويُقرأ دون لبس كبيانات بدلًا من فاصل معاملات.

الخطأ الذي يكسر عناوين URL أكثر من أي خطأ آخر

أكثر خطأ ترميز URL شيوعًا، بفارق كبير، هو ترميز عنوان URL كامل مُجمَّع بالدالة الخاطئة — استخدام `encodeURIComponent`، الذي يُهرِّب كل حرف محجوز بما في ذلك `/` و`:` و`&` و`?`، على عنوان كامل بدلًا من قيمة فردية واحدة. `://` بعد البروتوكول يتحول إلى `%3A%2F%2F`، كل `&` تفصل معاملات الاستعلام تتحول إلى `%26`، ويتوقف عنوان URL عن كونه عنوان URL على الإطلاق — يصبح سلسلة مُرمَّزة طويلة دون أي بنية يمكن لخادم تحليلها. النهج الصحيح هو الترتيب المعكوس: رمِّز أولًا كل قيمة فردية — مصطلح البحث، وجهة إعادة التوجيه، أيًا كانت البيانات الفعلية — وعندها فقط أدرِج تلك القيم المُرمَّزة بالفعل في بنية عنوان URL المحيطة، دون إعادة ترميز المجموعة المُجمَّعة لاحقًا أبدًا.

هذا بالضبط سبب تقديم هذه الأداة وضعين متمايزين بدلًا من زر "ترميز" عام واحد: وضع المكوِّن لترميز قيمة واحدة على وشك أن تصبح جزءًا من عنوان URL، ووضع عنوان URL الكامل للحالة الأندر لترميز عنوان كامل مع الحفاظ عمدًا على أحرفه البنيوية.

لماذا تتحول مسافة أحيانًا إلى %20 وأحيانًا إلى علامة زائد

اصطلاحان مميزان لترميز المسافات لا يزالان قيد الاستخدام النشط اليوم، وليسا قابلين للتبادل. الترميز النسبي المئوي، المعيار العام الغرض، يُمثِّل مسافة كـ`%20` وصالح في أي مكان من عنوان URL — المسار، سلسلة الاستعلام، في كل مكان. اصطلاح `+` لمسافة يأتي من معيار أقدم وأكثر تحديدًا لإرسالات نماذج HTML باستخدام نوع المحتوى `application/x-www-form-urlencoded`، وصالح فقط داخل سلسلة الاستعلام؛ `+` حرفي يظهر في مسار عنوان URL لا يُفسَّر كمسافة على الإطلاق، إنه ببساطة حرف الزائد. تُنتج هذه الأداة دائمًا `%20`، الصالح في أي سياق، وتفك ترميز كلا الشكلين بشكل صحيح عند قراءة عنوان URL مُرمَّز مرة أخرى.

أين يهم هذا خارج المتصفحات

تنطبق قواعد الترميز النسبي المئوي على أي عنوان URL بغض النظر عمَّا يبنيه أو يستهلكه — حمولة webhook مبنية بواسطة خدمة خلفية، رابط عميق يُفتَح بواسطة تطبيق جوال، طلب API مُجمَّع بواسطة نص برمجي. أينما تُدرَج قيمة قد تحتوي مسافات أو علامات & أو أحرفًا غير ASCII في سلسلة عنوان URL، تنطبق نفس قاعدة رمِّز-القيمة-قبل-إدراجها، لذا هذا اهتمام خلفي وبرمجي بقدر ما هو اهتمام متصفح.

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

ما الفرق بين وضع المكوِّن ووضع عنوان URL الكامل؟

وضع المكوِّن (`encodeURIComponent`) يُهرِّب كل شيء بما في ذلك / ? & = #، وهذا ما تريده لقيمة معامل استعلام واحد. وضع عنوان URL الكامل (`encodeURI`) يترك تلك الأحرف البنيوية سليمة حتى يبقى عنوان كامل قابلًا للاستخدام. استخدام الخاطئ هو خطأ ترميز URL الأكثر شيوعًا.

لماذا انكسر عنوان URL الخاص بي عندما رمَّزت كل شيء؟

شبه مؤكد أنك استخدمت وضع المكوِّن على عنوان URL كامل، الذي هرَّب `://` وفواصل `&`. رمِّز كل *قيمة* معامل منفردة، ثم اجمع عنوان URL — لا تُرمِّز النتيجة المُجمَّعة بالفعل.

لماذا تتحول مسافة أحيانًا إلى %20 وأحيانًا إلى +؟

يستخدم الترميز النسبي المئوي %20. صيغة `+` تأتي من ترميز نماذج HTML الأقدم (`application/x-www-form-urlencoded`) وصالحة فقط في سلسلة استعلام، أبدًا في مسار. تُنتج هذه الأداة %20، وتفك ترميز كليهما.

كيف تُعامَل الإيموجي وأحرف اللغات الأخرى؟

تُرمَّز كبايتات UTF-8، لذا é تتحول إلى %C3%A9 ويتحول إيموجي إلى أربعة هروب نسبي مئوي. هذا هو السلوك الصحيح ويتحول ذهابًا وإيابًا بدقة.

مهام شائعة لأداة مُرمِّز ومُفكِّك ترميز URL