فك ترميز URL
أعِد %E2%9C%93 إلى ✓. السلاسل المرمَّزة مرتين وترميز النماذج والمدخلات المعطوبة جزئيًا تُعالَج كلها بدلًا من رفضها. لا يُخزَّن أي شيء.
- لا يُخزَّن أبدًا
- لا طابور ولا انتظار
- دون تسجيل ودون علامة مائية
يظهر بعد فك الترميز هنا.
كيف تعمل الأداة
الصق النص المرمَّز
رابط URL كامل، أو سلسلة استعلام، أو قيمة واحدة فقط.
اختر النوع إن لزم
فك الترميز القياسي، أو فك ترميز النماذج حيث تعني + مسافة. وإن لم تكن متأكدًا، تُظهر لك الصفحة متى تختلف النتيجتان.
انسخ النتيجة
فك الترميز مرة أخرى إذا كان النص مرمَّزًا مرتين — وهذا شائع، ويسهل اكتشافه بمجرد أن تراه.
الالتباس الذي لا يستطيع أحد حسمه نيابةً عنك
فك الترميز بسيط من الناحية الآلية — ابحث عن كل % يليها رقمان ست عشريان، وأعِدها بايتًا، ثم اقرأ البايتات بترميز UTF-8 — وفيه التباس حقيقي واحد فقط. علامة الجمع قد تعني مسافة، وقد تعني علامة جمع. في النموذج المُرسَل تعني مسافة، بحكم عُرف أقدم من مواصفة URL نفسها على الويب. وفي جزء المسار هي حرف حرفي. ولا شيء في النص نفسه يحدد أيّ الحالتين تنطبق، لذا تعرض لك الصفحة القراءتين معًا بدلًا من اختيار واحدة والخطأ بصمت — وهذا أهم ما يكون في الحالة الأشد ضررًا: عنوان بريد إلكتروني أو قيمة base64 تكون فيها علامة الجمع بيانات حقيقية.
يصل النص غير ASCII في صورة عدة تسلسلات نسبة مئوية لكل حرف، لأن الترميز يعمل على بايتات UTF-8 لا على الأحرف: الحرف المشكول بعلامة يأخذ تسلسلين، ومعظم الرموز ثلاثة، والإيموجي أربعة. وإذا فككت تسلسلًا ليس UTF-8 صالحًا فستحصل على أحرف بديلة — وهي عادةً علامة على أن النص رُمِّز من مجموعة أحرف مختلفة، أو أنه قُطع في منتصف حرف.
فك الترميز مرتين ثغرة أمنية، لا مجرد خطأ. إذا فُكّ ترميز قيمة ثم فُحصت ثم فُكّ ترميزها مرة أخرى، يستطيع المهاجم إخفاء أحرف عن الفحص: %252e%252e%252f يجتاز مرشّحًا يبحث عن «../» لأنه بعد المرور الأول يظل %2e%2e%2f، وبعد الثاني يصبح بالضبط الانتقال بين المجلدات الذي وُضع المرشّح لمنعه. فك الترميز مرة واحدة فقط، ثم تحقّق، ولا تعكس الترتيب أبدًا.
النص الذي لم يُرمَّز أصلًا يعود دون تغيير بدلًا من أن يُشوَّه، وهذا هو السلوك المفيد حين لا تكون متأكدًا من حاجة السلسلة إلى فك الترميز أصلًا. وعلامة النسبة المئوية التي لا يليها رقمان ست عشريان تُترك كما هي بدلًا من معاملتها كخطأ — فهي علامة % حرفية، شائعة في النص الذي لُصق ولم يُرمَّز.
عندما تحتاج إلى شيء آخر
في الكود، يجب أن يطابق فكُّ الترميز طريقةَ الترميز. في JavaScript توجد decodeURIComponent؛ وتفصل Python بين unquote وunquote_plus بسبب مسألة علامة الجمع تحديدًا؛ وفي PHP توجد rawurldecode وurldecode للسبب نفسه. والأفضل من ذلك أن تترك نوع URL أو محلّل سلسلة الاستعلام يتولى الأمر — فمعظم أطر العمل تفك ترميز المعاملات نيابةً عنك، وفك الترميز مرة أخرى بعد ذلك هو بالضبط الطريقة التي تُكتب بها ثغرة فك الترميز المزدوج المذكورة أعلاه.
لفحص رابط URL طويل بدلًا من فك ترميز قيمة واحدة، المحلّل أفضل من أداة فك الترميز: python -c "import urllib.parse,sys; print(urllib.parse.urlparse(sys.argv[1]))" يقسّم العنوان إلى أجزائه لترى أي جزء هو أيّ قبل فك ترميز أي شيء، وهذا عادةً هو السؤال الحقيقي حين يتصرف رابط بشكل غريب.
الأسئلة الشائعة
ما زال النص يحتوي على %25 بعد فك الترميز
إذن فقد رُمِّز مرتين، وهذا شائع جدًا — يحدث كلما أُعيد ترميز قيمة مرمَّزة أصلًا أثناء مرورها عبر إعادة توجيه أو طبقة تسجيل. %25 هو ترميز الحرف % نفسه، لذا يحوّل فك الترميز الأول %2520 إلى %20، ويحوّلها فك الترميز الثاني إلى مسافة. ما عليك إلا فك الترميز مرة أخرى. وتخبرك الصفحة حين تلاحظ هذا النمط.
هل يجب أن تتحول «+» إلى مسافة؟
يعتمد ذلك على مصدر السلسلة، ولهذا هو خيار وليس تخمينًا. في جسم طلب من نوع application/x-www-form-urlencoded — أي نموذج HTML مُرسَل — تعني + مسافة. أما في جزء المسار، أو في بيانات مرّت عبر رابط URL فحسب، فإن + علامة جمع حرفية، وتحويلها إلى مسافة يُفسد القيمة. وسلاسل Base64 هي الحالة المؤذية: فهي تحتوي على أحرف + حقيقية، وفك ترميزها كنموذج يُتلفها.
ماذا يحدث مع سلسلة معطوبة؟
يفك ترميز ما يستطيع ويترك الباقي كما هو، بدلًا من رفض كل شيء. علامة % شاردة ليست جزءًا من تسلسل هروب صالح — وهذا شائع حين يكون النص قد فُكّ ترميزه جزئيًا من قبل، أو قُطع — تجعل أداة فك الترميز المدمجة في المتصفح تُطلق خطأً ولا تُعيد شيئًا. أما هنا، فيُفكّ ترميز كل تسلسل صالح وتُترك الأحرف الشاردة كما هي، وهذا أنفع بكثير حين تحاول قراءة سطر سجلّ معطوب.
هل يُخزَّن النص في أي مكان؟
لا. لا يُخزَّن أي شيء ولا يُرسَل أي طلب. يمكنك قطع الاتصال بالإنترنت بعد تحميل الصفحة وستستمر في العمل.
هل يمكنني فك ترميز رابط URL كامل دفعة واحدة؟
نعم. الصق الرابط بأكمله — تبقى بنيته مقروءة ولا تُعاد إلى نص إلا الأجزاء المرمَّزة، فيصبح رابط URL الطويل الذي يحمل عدة معاملات مرمَّزة شيئًا يمكنك قراءته فعلًا.
معلومة مفيدة: علامة الجمع ملتبسة: في سلسلة الاستعلام تعني مسافة، وفي المسار تعني علامة + حرفية. تفك الصفحة الترميز بالطريقتين وتبيّن لك الفرق بدلًا من التخمين. والنص الذي لم يُرمَّز أصلًا يُعاد دون تغيير بدلًا من أن يُشوَّه.
أضِف هذه الأداة إلى موقعك
مجانية لأي مدونة أو صفحة فصل دراسي أو مقالة مساعدة. الصق مقتطفًا واحدًا وسيتمكن زوارك من استخدامها مباشرةً على صفحتك.