بناء قيم سلسلة الاستعلام
أيّ مُدخل مستخدم تضعه في ?q=... يجب ترميزه بوضع المكوّن. سيترك وضع URI كلًّا من = و& دون ترميز، فيكسر عنوان 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 كامل.
أفلِت ملفًا نصيًّا هنا، أو انقر للتصفّح
أي ملف نصّي بترميز UTF-8: .txt، .csv، .json، .url، .log
سريع ودقيق ويعمل داخل المتصفّح فقط — مُصمَّم للمطوّرين وكتّاب المحتوى وكلّ من يصحّح عنوان URL.
اختر بين وضع المكوّن أو URI الكامل أو النموذج بحسب ما ترمّزه — قيمة في سلسلة استعلام أو عنوان URL كامل أو حمولة نموذج HTML.
تجري كلّ عمليّات الترميز وفكّ الترميز داخل متصفّحك باستخدام JavaScript الأصلي. لا تغادر نصوصك ولا عناوين URL جهازك أبدًا.
يتحدّث الناتج مع كلّ ضغطة مفتاح — لا حاجة للنقر على زرّ "ترميز"، ولا أيّ ذهاب وإياب إلى خادم.
تمرّ الرموز التعبيريّة وحروف CJK والحروف اللاتينيّة المُشكَّلة والحروف السيريليّة عبر encodeURIComponent ذهابًا وإيابًا دون أيّ خلل.
عند فكّ الترميز، يمكنك اختياريًّا اعتبار '+' مسافةً — وهي العُرف الذي تتّبعه نماذج HTML ضمن application/x-www-form-urlencoded.
أفلِت ملفّ .txt أو .csv أو .json لترميزه أو فكّ ترميزه دفعةً واحدة. يُنزَّل الناتج بصيغة .txt نظيفة.
ثلاث واجهات برمجيّة أصليّة في المتصفّح، وثلاثة أوضاع، تعمل كلّها في الصفحة التي تطالعها الآن.
مع كلّ ضغطة مفتاح، تُمرَّر سلسلة المُدخل إلى دالّة JavaScript صغيرة. لا تأخير ولا استدعاء API ولا fetch — تعمل الدالّة بشكل متزامن داخل علامة التبويب في متصفّحك.
المكوّن يستدعي encodeURIComponent — يُفلِت كلّ ما ليس A-Z a-z 0-9 - _. ~. URI يستدعي encodeURI — يحفظ :/?#=& ليبقى عنوان URL الكامل صالحًا. النموذج يستخدم encodeURIComponent ويستبدل المسافة بـ + وفق application/x-www-form-urlencoded.
يحوّل كلّ من encodeURIComponent وencodeURI السلسلة داخليًّا إلى بايتات UTF-8 قبل تطبيق percent-encoding على كلّ بايت غير آمن. وهذا يُنتج %E4%B8%AD للحرف الصينيّ 中 — تمامًا كما يتطلّب RFC 3986.
تُعيَّن النتيجة قيمةً للحقل المُخرَج للقراءة فقط. انقر "نسخ" لوضعها في الحافظة عبر navigator.clipboard.writeText، أو "تنزيل" لحفظها بصيغة .txt عبر Blob URL — وكلاهما يبقى داخل متصفّحك.
مواقف حقيقيّة يمنع فيها اختيار وضع الترميز الصحيح وقوع الأخطاء.
أيّ مُدخل مستخدم تضعه في ?q=... يجب ترميزه بوضع المكوّن. سيترك وضع URI كلًّا من = و& دون ترميز، فيكسر عنوان URL إذا احتوت القيمة على أيٍّ منهما.
بعض تطبيقات الدردشة وملفّات PDF تُفسد الروابط حين تحوي مسافات أو أحرفًا خارج ASCII. مرِّر العنوان عبر وضع URI ليصبح آمنًا للنسخ واللصق في أيّ مكان.
حين ترفض واجهة API طلبك، الصق عنوان URL في وضع فكّ الترميز لترى ما رآه الخادم فعلًا. تظهر القيم ذات الترميز المزدوج (حيث رُمِّزت % نفسها بـ %25) فورًا.
عند تصحيح حمولات POST بصيغة application/x-www-form-urlencoded، افكُكِ الترميز مع تفعيل خيار "+ مسافة". هذا هو العُرف الذي تتّبعه المتصفّحات، وإغفاله هو السبب الأوّل لأخطاء "لماذا يظهر اسم المستخدم بإشارات +؟".
كثيرًا ما تحوي عناوين URL التي ترمّزها بريد عملاء حقيقيًّا أو معرّفات أو رموز جلسات — وهي بالضبط نوع البيانات الذي لا ترغب في لصقه في أداة على خادم غريب. يعمل iKit URL Encoder بصفته JavaScript مُحمَّلًا أصلًا في متصفّحك، فلا يغادر المُدخل علامة التبويب أبدًا.
fetch ولا XHR ولا beacon أثناء الترميز أو فكّ الترميز.
دروس تفصيلية ومقارنات بين الأدوات من مدونة iKit.
The 30-year-old form-encoding quirk explained — when + means space, when it means literal +, and how to fix the email-with-plus bug.
When to reach for Base64 versus URL percent-encoding, and what each encoding actually solves.
Pretty-print, validate, and structurally diff messy JSON in any browser.
المكوّن (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 غير صالح — علامة % شاردة لا يتبعها رقمان ست عشريّان. راجع رسالة الخطأ لمعرفة موقع البايت بدقّة.
نعم في وضع المكوّن — فنحن نستدعي encodeURIComponent مباشرةً. ويضيف وضع النموذج التعديلات القياسيّة لترميز النماذج (تتحوّل ! ' * إلى %21 %27 %28 %29 %2A) وفقًا لـ RFC 3986 + WHATWG. أمّا وضع URI فيستدعي encodeURI، وهو ما تقصده أغلب اللغات بـ "percent-encoding لعنوان URL".
كلّا. الأداة بأكملها هي JavaScript داخل هذه الصفحة — تجري عمليّات الترميز وفكّ الترميز داخل متصفّحك. يمكنك التحقّق بفتح DevTools ← Network ومراقبتها: لن تُرسَل أيّ طلبات أثناء عمليّات الترميز أو فكّ الترميز.