Menu
العربية

مُرمِّز / فاك ترميز URL

رمّز وفك ترميز مكونات URL بأمان.

Last updated

الوضع
النطاق
مفكوكالصق نصاً للبدء
مُرمّز
يظهر الإخراج المُرمّز أو المفكوك هنا — يدعم يونيكود.

ما هي أداة ترميز روابط URL؟

أداة ترميز URL (تُعرف أيضًا بـ percent-encoder أو URI encoder) تستبدل الرموز المحجوزة أو غير الآمنة داخل الروابط بعلامة % متبوعة برقمين بالنظام السادس عشر. يلجأ إليها المطورون عند بناء الـ query strings، أو تهريب أجزاء المسار، أو مشاركة روابط تحتوي على فراغات أو رموز خارج نطاق ASCII، أو تتبّع مشاكل إعادة التوجيه.

الروابط محصورة في مجموعة صغيرة من رموز ASCII. أي شيء خارج هذه المجموعة — كالفراغات، والحروف ذات الحركات، والإيموجي، أو الرموز المحجوزة مثل ? و # و & و = حين تُستعمل كبيانات — لا بد أن يُرمَّز بصيغة percent-encoding ليصل سليمًا من المتصفح إلى الخادم.

توفّر JavaScript دالتين للترميز: encodeURI (تحافظ على بنية الرابط: / و ? و # و &) و encodeURIComponent (تُرمّز كل رمز محجوز). استخدم encodeURIComponent مع *قيم* تضعها داخل query string، و encodeURI مع *الروابط الكاملة* التي تريد أن تظل قابلة للعمل.

ماذا ستتعلّم أثناء ترميز الروابط

  • ترميز percent-encoding يستبدل البايت الواحد بعلامة % متبوعة برقمين بالنظام السادس عشر — مثلًا، الفراغ يصبح %20.
  • الرموز المحجوزة (: / ? # & = +) لها معنى خاص في بنية الرابط، لذا يجب ترميزها حين تُستعمل كبيانات لا كفواصل.
  • النصوص خارج ASCII (الحروف ذات الحركات، والإيموجي، والسيريلية، والصينية واليابانية والكورية) تُحوَّل أولًا إلى بايتات UTF-8، ثم يُرمَّز كل بايت على حدة بصيغة percent-encoding.

كيف ترمّز الروابط وتفك ترميزها خطوة بخطوة

  1. اختر الاتجاه

    اختر «ترميز» إذا كان لديك نص خام وتريد جعله آمنًا داخل الرابط. واختر «فك الترميز» إذا كان لديك نص مرمَّز بصيغة % وتريد استعادة النص الأصلي.

  2. حدّد وضع الترميز

    اختر encodeURIComponent (يرمّز كل رمز محجوز) لقيم الـ query string، واختر encodeURI (يحافظ على البنية) للروابط الكاملة.

  3. الصق المدخلات

    الصق النص الخام أو الرابط المرمَّز. يدعم الإدخال متعدد الأسطر لفك ترميز عدة قيم دفعةً واحدة.

  4. انسخ النتيجة

    انسخ القيمة المرمَّزة أو المفكوكة. تتم العملية محليًا داخل متصفحك، فأي بيانات حساسة في الروابط تبقى على جهازك.

مرجع سريع لأشهر رموز URL المرمَّزة

أكثر الرموز التي ستراها مرمَّزة، مع شكلها بصيغة percent-encoding. دلالات الرموز المحجوزة مأخوذة من RFC 3986.

الرمزالترميزالسبب
فراغ%20الفراغات غير مسموح بها داخل الروابط
!%21محجوز عند بعض الخوادم
#%23يدلّ على بداية الـ fragment
$%24رمز محجوز
&%26يفصل بين معاملات الـ query
+%2Bيعني فراغًا داخل أجسام النماذج المرمَّزة form-encoded
/%2Fفاصل بين أجزاء المسار
:%3Aيفصل بين الـ scheme والمضيف
=%3Dيفصل بين المفتاح والقيمة في الـ query string
?%3Fيدلّ على بداية الـ query string
@%40يفصل بين معلومات المستخدم والمضيف
بايت UTF-8%C3%A9كل بايت خارج نطاق ASCII يُرمَّز على حدة

أمثلة عملية لترميز الروابط

ترميز عبارة بحث

النص الخام

hello world & more

بعد الترميز

hello%20world%20%26%20more

الفراغات تتحوّل إلى %20، ورمز & يصبح %26 حتى لا يُفسَّر على أنه فاصل بين معاملات الـ query.

ترميز حروف خارج ASCII

النص الخام

café

بعد الترميز

caf%C3%A9

حرف é يُمثَّل في UTF-8 بسلسلة البايتين 0xC3 0xA9، لذا تظهر *مجموعتان* من %XX لتمثيل حرف واحد.

encodeURI مقابل encodeURIComponent

النص الخام

https://example.com/path?q=hello world

encodeURI

https://example.com/path?q=hello%20world

encodeURIComponent

https%3A%2F%2Fexample.com%2Fpath%3Fq%3Dhello%20world

encodeURI تحافظ على بنية الرابط (الشرطات المائلة و ? و =)، بينما encodeURIComponent ترمّز كل الرموز المحجوزة — استخدمها على القيم التي تضعها داخل query string، ولا تستعملها أبدًا على رابط كامل.

أخطاء شائعة في ترميز الروابط

  • استخدام encodeURI لقيم الـ query string — رمزا & و = يبقيان كما هما، فينكسر تحليل المعاملات.
  • ترميز الرابط مرتين. ظهور %2520 بدلًا من %20 هو العلامة الكلاسيكية على مشكلة الترميز المزدوج.
  • نسيان أن + يعني فراغًا داخل أجسام application/x-www-form-urlencoded، لكنه يبقى علامة + حرفية داخل مسار الرابط أو الـ query.

أسئلة شائعة عن ترميز الروابط

ما هو ترميز URL؟
ترميز URL (المعروف أيضًا بـ percent-encoding) طريقة لتمثيل الرموز التي لها معنى خاص داخل الروابط، أو غير الآمنة للنقل، باستبدالها بعلامة % متبوعة برقمين بالنظام السادس عشر.
ما الفرق بين encodeURI و encodeURIComponent؟
encodeURI تحافظ على رموز بنية الرابط (/ و ? و # و & و = و +)، أما encodeURIComponent فترمّزها جميعًا، وهذا ما تحتاجه عند وضع *قيم* مفردة داخل رابط — كقيم معاملات الـ query، وأجزاء المسار، والـ fragments. راجع توثيق MDN لكل من encodeURI و encodeURIComponent.
لماذا يتحوّل الفراغ إلى %20؟
الفراغات غير مسموح بها داخل الروابط، فتُستبدل بـ %20، وهي صيغة percent-encoding لرمز الفراغ في ASCII (0x20 بالنظام السادس عشر).
متى يجب أن أرمّز الروابط؟
رمّز أي قيمة ديناميكية أو قادمة من المستخدم قبل إدخالها في رابط — قيم الـ query string، وأجزاء المسار، وعناوين إعادة التوجيه، ومعاملات OAuth. لا تثق أبدًا أن المدخل الخام آمن داخل الرابط.
هل يمكن عكس ترميز URL؟
نعم — وهذا هو فك ترميز URL. تقوم decodeURI أو decodeURIComponent أو أي أداة لفك الترميز بإرجاع percent-encoding إلى الرموز الأصلية.

اعرف المزيد

أدوات مطورين أخرى

تعلّم البرمجة مع Coddy

ابدأ الآن