فكّ ترميز URL (فكّ الترميز المئوي) هو عكس ترميز URL: يحوِّل التسلسلات المرمَّزة مئوياً إلى أحرفها الأصلية. يُستبدل كل تكرار لعلامة النسبة المئوية متبوعةً برقمين ست عشريين (%XX) بالبايت الذي يمثله XX. تُعاد بايتات متعددة متتالية إلى حالتها الأصلية لإعادة بناء حرف UTF-8 الأصلي.
فكّ ترميز URL مهمة يومية للمطورين العاملين مع APIs وكشط الويب وتحليل السجلات وتدفقات المصادقة. عناوين URL المرمَّزة مقروءة للآلات لكنها معتمة للبشر — فكّ ترميزها يكشف فوراً عن المسارات الحقيقية واستعلامات البحث وأهداف إعادة التوجيه وقيم المعاملات التي قد تستلزم تحويلاً ذهنياً من ست عشري إلى حرف.
لماذا تستخدم هذه الأداة؟
افهم بسرعة أي URL أو سلسلة استعلام مرمَّزة مئوياً، دون الحاجة إلى وحدة تحكم المتصفح، ودون إرسال أي شيء إلى خادم.
⚡
فكّ ترميز فوري
الصق أي URL أو معامل مرمَّز وشاهد النسخة المقروءة للإنسان فوراً. مثالي لتصحيح طلبات API وملفات السجلات.
🛡️
استعادة الأخطاء
يتراجع إلى الدالة القديمة unescape() للمدخلات التي تحتوي على أحرف Latin-1 مرمَّزة مئوياً بالأسلوب القديم والتي قد تُفشل decodeURIComponent.
🔒
من جانب العميل فقط
يعمل كل فكّ الترميز محلياً في متصفحك. الرموز المميزة وكلمات المرور ومعاملات الاستعلام الخاصة لا تغادر جهازك أبداً.
🔁
دعم URL الكامل
افكّ ترميز عناوين URL الكاملة أو قيم المعاملات المفردة. تتعامل الأداة مع مسافات %20 القياسية وتحافظ على علامات + كأحرف جمع حرفية.
كيفية استخدام هذا المفكِّك لرموز URL أونلاين
بدون حساب، بدون تثبيت. الصق سلسلتك المُرمَّزة بالنسبة المئوية في حقل الإدخال وستظهر النتيجة المفكوكة فورًا. كل شيء يعمل في متصفحك — لا تغادر بياناتك جهازك أبدًا.
1
الصق رابطك المُرمَّز أو سلسلتك النصية
انسخ أي سلسلة مُرمَّزة بالنسبة المئوية — رابط URL من شريط العنوان، أو معامل استعلام من سجلات الخادم، أو استجابة API، أو هدف إعادة توجيه — والصقها في حقل الإدخال.
2
الكشف التلقائي عن التنسيق
يتعامل فاك الترميز تلقائيًا مع كل من ترميز النسبة المئوية %XX وعلامة + بوصفها مسافة (application/x-www-form-urlencoded). لا حاجة لتحديد تنسيق الترميز يدويًا.
3
افحص المخرجات المفكوكة
يظهر النص المقروء فورًا. إذا كان الإدخال يحتوي على ترميز متداخل (سلاسل مُرمَّزة مضاعفة)، يحلّ فاك الترميز طبقةً واحدة في كل مرة. تظهر رسالة خطأ عند وجود تسلسلات %XX مشوهة.
4
انسخ أو أعد الترميز
انقر على نسخ للحصول على السلسلة المفكوكة. هل تحتاج إلى ترميزها مجددًا بإعدادات مختلفة؟ انتقل إلى أداة مشفِّر URL بنقرة واحدة.
كيف يعمل فكّ الترميز
يمسح المحلل البيانات المدخلة بحثاً عن تسلسلات %، ويحوّل كل مجموعة رقمين ست عشريين إلى قيمة بايت، ويجمع تسلسلات البايتات المتتالية، ثم يفسّرها كـ UTF-8 لإنتاج أحرف Unicode النهائية.
انسخ URL من سجلات الشبكة في DevTools المتصفح وافكّ ترميزه لرؤية قيم معاملات الاستعلام الفعلية — مفيد بشكل خاص حين ترمّز الأدوات الآلية أو المكتبات المعاملات مئوياً.
قراءة ملفات السجلات
سجلات الوصول لخوادم الويب وسجلات التطبيقات تخزّن عناوين URL في صيغتها المرمَّزة. افكّ ترميزها للعثور على المسارات المطلوبة الفعلية ومصطلحات البحث وقيم المعاملات.
فحص إعادة التوجيه
تحمل استجابات OAuth وإعادات توجيه SSO وعناوين URL لتتبع الروابط في الغالب معاملات redirect_uri أو next مرمَّزة بكثافة. افكّ ترميز URL لتتبع الوجهة المقصودة.
تحتوي عناوين URL التحليلية ورؤوس المُحيل على استعلام بحث المستخدم الأصلي مرمَّزاً مئوياً في المعامل q=. افكّ الترميز لعرض مصطلحات البحث الفعلية أو تحليلها.
الهندسة العكسية لعناوين URL
عند التكامل مع APIs خارجية أو الكشط، تحتوي عناوين URL المُصادَفة في الغالب على أجزاء مسار ومعاملات مرمَّزة. افكّ ترميزها لفهم بنية URL وإعادة إنتاج الطلبات.
الأخطاء الشائعة
هذه أكثر الأخطاء شيوعاً عند فكّ ترميز السلاسل المرمَّزة مئوياً:
✕
الخلط بين + و%20
في بيانات application/x-www-form-urlencoded (إرسال نماذج HTML)، يمثل + مسافة. لكن في مسار URL خام أو قيمة مرمَّزة بـ encodeURIComponent، يكون + علامة جمع حرفية. لا تحوّل decodeURIComponent + إلى مسافة — استخدم URLSearchParams أو unquote_plus لبيانات النماذج.
✕
السلاسل المرمَّزة مزدوجاً
إن رُمِّزت سلسلة مرتين، فسيُبقي فكّ الترميز مرة واحدة على علامات النسبة المئوية: يُفكَّك %2520 إلى %20 لا إلى مسافة. افكّ الترميز مرة ثانية للحصول على القيمة الأصلية. انتبه لهذا في السجلات والبروكسيات والوسيطات التي تُعيد ترميز البيانات المرمَّزة مسبقاً.
✕
تسلسلات النسبة المئوية المشوّهة
علامة % مفردة أو متبوعة بأحرف غير ست عشرية (مثل %GG أو % 2) غير صالحة وستُلقي URIError. تحقق دائماً من صحة المدخلات أو غلّف عملية فكّ الترميز في try/catch.
✕
عدم تطابق الترميز (Latin-1 مقابل UTF-8)
كانت الأنظمة القديمة (urlencode في PHP وASP الكلاسيكي) تُرمِّز الأحرف كبايتات Latin-1. قد تُفكَّك السلاسل المرمَّزة بـ Latin-1 بشكل خاطئ مع محلل UTF-8. إن رأيت أحرفاً مشوّهة، جرّب مسار الدالة القديمة unescape() أو حدّد الترميز الأصلي.
أمثلة الشيفرة
كيفية فكّ ترميز سلاسل URL في اللغات والبيئات الشائعة:
JavaScript (browser / Node.js)
// Decode a percent-encoded component
decodeURIComponent('hello%20world%20%26%20more') // → "hello world & more"
// Decode a full URL (leaves structure characters encoded)
decodeURI('https://example.com/path?q=hello%20world') // → "https://example.com/path?q=hello world"
// Parse a query string (handles + as space automatically)
const params = new URLSearchParams('q=hello+world&lang=en')
params.get('q') // → "hello world"
const url = new URL('https://example.com/search?q=hello%20world%20%26%20more')
url.searchParams.get('q') // → "hello world & more"
url.pathname // → "/search"
CLI (bash)
# Decode with Python one-liner
python3 -c "from urllib.parse import unquote; print(unquote('hello%20world'))"
# Decode with Node.js
node -e "console.log(decodeURIComponent('hello%20world%20%26'))"
مفكِّك رموز URL مقابل البدائل
يمكن لأدوات متعددة فك ترميز السلاسل المُرمَّزة بالنسبة المئوية، غير أنها تتفاوت من حيث الوضوح والخصوصية والراحة.
هذه الأداة
مستندة إلى المتصفح، فورية، خاصة. تعالج ترميز %XX وعلامة + بوصفها مسافة و Unicode والتسلسلات المشوهة. لا تُرسَل أي بيانات إلى أي خادم.
شريط عنوان المتصفح
تُفكِّك المتصفحات رموز عناوين URL للعرض، لكن ليس دائمًا بشكل كامل — قد تظل بعض الأحرف المُرمَّزة مرئية في شريط العنوان. وهي غير مفيدة لفحص قيم المعاملات الفردية.
DevTools / curl -v
تعرض DevTools المتصفح وأداة curl عناوين URL الخام والمفكوكة في طلبات الشبكة. مفيد للتنقيح، لكنه يستلزم التبديل بين الأدوات ومعرفة أين تبحث.
الأسئلة الشائعة
ما الفرق بين decodeURIComponent وdecodeURI؟
تُفكِّك decodeURIComponent جميع تسلسلات الترميز المئوي بما فيها الأحرف المحجوزة (%2F → / و%3F → ? وما إليها). تُفكِّك decodeURI فقط التسلسلات التي لن تُنتج حرفاً ذا معنى خاص في URL — وتُبقي على %2F و%3F و%23 وغيرها من الأحرف البنيوية مرمَّزة. استخدم decodeURIComponent لقيم المعاملات؛ واستخدم decodeURI فقط حين يكون لديك URL كامل وتريد الحفاظ على بنيته.
لماذا أرى URIError: URI مشوّه؟
يحدث هذا الخطأ من decodeURIComponent حين تحتوي المدخلات على % غير متبوعة برقمين ست عشريين صالحين، أو حين يكون تسلسل UTF-8 متعدد البايتات غير مكتمل (مثل %E2 دون %82%AC التالية). أزل علامات النسبة المئوية المنفردة أو اهرب منها قبل فكّ الترميز.
هل يعامل فكّ الترميز + كمسافة؟
لا — تُعامل decodeURIComponent + كعلامة جمع حرفية لا كمسافة. اتفاقية + → مسافة تنطبق فقط على بيانات application/x-www-form-urlencoded (إرسال نماذج HTML). لفكّ ترميز البيانات المرمَّزة بالنموذج، استخدم URLSearchParams (المتصفح/Node) أو urllib.parse.unquote_plus (Python).
هل من الآمن فكّ ترميز URL من جانب العميل؟
نعم — فكّ ترميز URL تحويل نقي لا طلبات شبكة فيه. تتضمن جميع المتصفحات الحديثة decodeURIComponent وdecodeURI كدوال أصيلة. تُنجز هذه الأداة فكّ الترميز بالكامل في متصفحك؛ لا تُرسَل أي بيانات إلى أي مكان.
كيف أفكّ ترميز URL رُمِّز أكثر من مرة؟
افكّ ترميزه مرات متعددة حتى يستقر الناتج (لم تعد تُحلَّل أي تسلسلات %). يحدث هذا حين يمر URL مرمَّز بالفعل عبر مُرمِّز آخر. تُزيل كل جولة فكّ ترميز طبقة ترميز واحدة.
ماذا يمثل %XX؟
الحرفان بعد % هما رقمان ست عشريان يمثلان قيمة بايت واحدة (00–FF). بالنسبة لأحرف ASCII، هذا البايت هو رمز ASCII للحرف: %41 = 65 = 'A'. بالنسبة للأحرف غير ASCII، تمثل تسلسلات %XX المتعددة تسلسل بايتات UTF-8 للحرف: علامة اليورو هي %E2%82%AC (ثلاثة بايتات: 0xE2 و0x82 و0xAC).
ما الترميز الذي يستخدمه المتصفح عند إرسال نماذج HTML؟
تضيف نماذج HTML ذات method=GET الحقول إلى عنوان URL باستخدام ترميز application/x-www-form-urlencoded، حيث تُستبدل المسافات بـ + بدلاً من %20 وتُرمَّز الأحرف الخاصة الأخرى بالنسبة المئوية. يتعامل خيار + → مسافة في أداة URL Decode مع هذا التنسيق. تستخدم النماذج ذات method=POST وenctype=application/x-www-form-urlencoded نفس المخطط في جسم الطلب.
هل ثمة حد لحجم البيانات عند فك الترميز؟
لا يوجد حد من جانب الخادم — تعمل الأداة بالكامل في متصفحك. تعتمد الحدود العملية على ذاكرة متصفحك. للسلاسل المُرمَّزة الطويلة جدًا أو المعالجة الدُّفعية، استخدم decodeURIComponent في نص برمجي.