URL Encoder

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

رمِّز أي نص إلى سلسلة percent-encoding آمنة للاستخدام في عناوين URL، أو فُكّ ترميز عنوان URL مُرمَّز للعودة إلى نصّ عادي. معاينة مباشرة، آمن مع UTF-8، ويعمل بالكامل داخل متصفّحك.

المكوّن (encodeURIComponent) يُفلِت كلّ ما ليس حرفًا غير محجوز — وهو الأكثر أمانًا لقيم سلسلة الاستعلام أو أجزاء المسار أو أيّ حقل مفرد. URI (encodeURI) يحفظ أحرف بنية URL ‏(:/?#=&) — استخدمه على عنوان URL كامل. النموذج (application/x-www-form-urlencoded) هو وضع المكوّن مع تحويل المسافات إلى '+' — وهو ما تستخدمه نماذج HTML.

يُحدّد RFC 3986 مجموعة من الأحرف "غير المحجوزة" التي لا تحتاج إلى ترميز: ‏A-Z a-z 0-9 - _. ~. وما عدا ذلك يخضع لـ percent-encoding. ويُرمِّز encodeURIComponent إضافةً إلى ذلك ‏:/?#&= التي يتركها encodeURI كما هي. هذا الفرق مهمّ عند ترميز قيمة استعلام مقابل عنوان URL كامل.

نص عادي

0 حرف

الناتج المُرمَّز

0 حرف

لماذا iKit URL Encoder

سريع ودقيق ويعمل داخل المتصفّح فقط — مُصمَّم للمطوّرين وكتّاب المحتوى وكلّ من يصحّح عنوان URL.

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

اختر بين وضع المكوّن أو URI الكامل أو النموذج بحسب ما ترمّزه — قيمة في سلسلة استعلام أو عنوان URL كامل أو حمولة نموذج HTML.

خصوصية بالتصميم

تجري كلّ عمليّات الترميز وفكّ الترميز داخل متصفّحك باستخدام JavaScript الأصلي. لا تغادر نصوصك ولا عناوين URL جهازك أبدًا.

معاينة مباشرة

يتحدّث الناتج مع كلّ ضغطة مفتاح — لا حاجة للنقر على زرّ "ترميز"، ولا أيّ ذهاب وإياب إلى خادم.

آمن مع UTF-8

تمرّ الرموز التعبيريّة وحروف CJK والحروف اللاتينيّة المُشكَّلة والحروف السيريليّة عبر encodeURIComponent ذهابًا وإيابًا دون أيّ خلل.

معالجة + بأسلوب النماذج

عند فكّ الترميز، يمكنك اختياريًّا اعتبار '+' مسافةً — وهي العُرف الذي تتّبعه نماذج HTML ضمن application/x-www-form-urlencoded.

معالجة الملفّات بالجملة

أفلِت ملفّ ‎.txt أو ‎.csv أو ‎.json لترميزه أو فكّ ترميزه دفعةً واحدة. يُنزَّل الناتج بصيغة ‎.txt نظيفة.

كيف يعمل ترميز URL فعليًّا

ثلاث واجهات برمجيّة أصليّة في المتصفّح، وثلاثة أوضاع، تعمل كلّها في الصفحة التي تطالعها الآن.

  1. 1

    تكتب في المحرّر

    مع كلّ ضغطة مفتاح، تُمرَّر سلسلة المُدخل إلى دالّة JavaScript صغيرة. لا تأخير ولا استدعاء API ولا fetch — تعمل الدالّة بشكل متزامن داخل علامة التبويب في متصفّحك.

  2. 2

    اختر الوضع

    المكوّن يستدعي encodeURIComponent — يُفلِت كلّ ما ليس A-Z a-z 0-9 - _. ~. URI يستدعي encodeURI — يحفظ :/?#=& ليبقى عنوان URL الكامل صالحًا. النموذج يستخدم encodeURIComponent ويستبدل المسافة بـ + وفق application/x-www-form-urlencoded.

  3. 3

    UTF-8 يحدث مجّانًا

    يحوّل كلّ من encodeURIComponent وencodeURI السلسلة داخليًّا إلى بايتات UTF-8 قبل تطبيق percent-encoding على كلّ بايت غير آمن. وهذا يُنتج %E4%B8%AD للحرف الصينيّ 中 — تمامًا كما يتطلّب RFC 3986.

  4. 4

    يظهر الناتج مباشرةً

    تُعيَّن النتيجة قيمةً للحقل المُخرَج للقراءة فقط. انقر "نسخ" لوضعها في الحافظة عبر navigator.clipboard.writeText، أو "تنزيل" لحفظها بصيغة .txt عبر Blob URL — وكلاهما يبقى داخل متصفّحك.

حالات الاستخدام الشائعة

مواقف حقيقيّة يمنع فيها اختيار وضع الترميز الصحيح وقوع الأخطاء.

بناء قيم سلسلة الاستعلام

أيّ مُدخل مستخدم تضعه في ?q=... يجب ترميزه بوضع المكوّن. سيترك وضع URI كلًّا من = و& دون ترميز، فيكسر عنوان URL إذا احتوت القيمة على أيٍّ منهما.

مشاركة عنوان URL طويل في الدردشة

بعض تطبيقات الدردشة وملفّات PDF تُفسد الروابط حين تحوي مسافات أو أحرفًا خارج ASCII. مرِّر العنوان عبر وضع URI ليصبح آمنًا للنسخ واللصق في أيّ مكان.

تصحيح خادم خلفيّ يُعيد 400

حين ترفض واجهة API طلبك، الصق عنوان URL في وضع فكّ الترميز لترى ما رآه الخادم فعلًا. تظهر القيم ذات الترميز المزدوج (حيث رُمِّزت % نفسها بـ %25) فورًا.

رحلة بيانات النموذج ذهابًا وإيابًا

عند تصحيح حمولات POST بصيغة application/x-www-form-urlencoded، افكُكِ الترميز مع تفعيل خيار "+ مسافة". هذا هو العُرف الذي تتّبعه المتصفّحات، وإغفاله هو السبب الأوّل لأخطاء "لماذا يظهر اسم المستخدم بإشارات +؟".

لماذا يهمّ الترميز محليًّا

كثيرًا ما تحوي عناوين URL التي ترمّزها بريد عملاء حقيقيًّا أو معرّفات أو رموز جلسات — وهي بالضبط نوع البيانات الذي لا ترغب في لصقه في أداة على خادم غريب. يعمل iKit URL Encoder بصفته JavaScript مُحمَّلًا أصلًا في متصفّحك، فلا يغادر المُدخل علامة التبويب أبدًا.

  • لا fetch ولا XHR ولا beacon أثناء الترميز أو فكّ الترميز.
  • يعمل دون اتّصال بالإنترنت بمجرّد تحميل الصفحة.
  • لا سجلّات، ولا حدّ للمعدّل، ولا تسجيل، ولا حصّة يوميّة.

أدلة ذات صلة

دروس تفصيلية ومقارنات بين الأدوات من مدونة iKit.

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

ما الفرق بين أوضاع المكوّن وURI والنموذج؟

المكوّن (encodeURIComponent) يُفلِت كلّ ما ليس حرفًا غير محجوز — وهو الأكثر أمانًا لقيم سلسلة الاستعلام أو أجزاء المسار أو أيّ حقل مفرد. URI (encodeURI) يحفظ أحرف بنية URL ‏(:/?#=&) — استخدمه على عنوان URL كامل. النموذج (application/x-www-form-urlencoded) هو وضع المكوّن مع تحويل المسافات إلى '+' — وهو ما تستخدمه نماذج HTML.

لماذا لا يُرمَّز بعض الأحرف؟

يُحدّد RFC 3986 مجموعة من الأحرف "غير المحجوزة" التي لا تحتاج إلى ترميز: ‏A-Z a-z 0-9 - _. ~. وما عدا ذلك يخضع لـ percent-encoding. ويُرمِّز encodeURIComponent إضافةً إلى ذلك ‏:/?#&= التي يتركها encodeURI كما هي. هذا الفرق مهمّ عند ترميز قيمة استعلام مقابل عنوان URL كامل.

لماذا يبدو النصّ بعد فكّ الترميز خاطئًا؟

ثلاثة أسباب شائعة: (1) أنّ الأصل مُرمَّز بأسلوب النماذج فينبغي اعتبار '+' مسافةً — فعِّل هذا الخيار. (2) ترميز مزدوج — رُمِّز المُدخل مرّتين؛ افكُكِ الترميز مجدّدًا. (3) تتابع percent غير صالح — علامة % شاردة لا يتبعها رقمان ست عشريّان. راجع رسالة الخطأ لمعرفة موقع البايت بدقّة.

هل عنوان URL المُرمَّز مطابق تمامًا لما يُنتجه encodeURIComponent في JavaScript؟

نعم في وضع المكوّن — فنحن نستدعي encodeURIComponent مباشرةً. ويضيف وضع النموذج التعديلات القياسيّة لترميز النماذج (تتحوّل ‎! ' *‎ إلى ‎%21 %27 %28 %29 %2A) وفقًا لـ RFC 3986 + WHATWG. أمّا وضع URI فيستدعي encodeURI، وهو ما تقصده أغلب اللغات بـ "percent-encoding لعنوان URL".

هل تُرفَع عناويني إلى أيّ مكان؟

كلّا. الأداة بأكملها هي JavaScript داخل هذه الصفحة — تجري عمليّات الترميز وفكّ الترميز داخل متصفّحك. يمكنك التحقّق بفتح DevTools ← Network ومراقبتها: لن تُرسَل أيّ طلبات أثناء عمليّات الترميز أو فكّ الترميز.