فك ترميز الروابط
الصق رابطًا أو سلسلة استعلام مرمَّزة بالنسبة المئوية واقرأها مفكوكة أثناء الكتابة، بما في ذلك محارف UTF-8.
فك ترميز النصوص المرمَّزة في الروابط
لا تحمل الروابط إلا مجموعة محدودة من المحارف، لذا يُرمَّز كل ما عداها بالنسبة المئوية: المسافات، والحروف ذات العلامات، والكتابات غير اللاتينية كالعربية، والمحارف ذات المعنى الخاص في الرابط مثل & و= و?. وملفات السجلات ومعاملات إعادة التوجيه ووسوم UTM وأخطاء الواجهات البرمجية مليئة بهذه التسلسلات، وفك ترميزها أسرع طريقة لمعرفة ما أُرسل فعلًا.
تفتح هذه الصفحة مُرمِّز الروابط وفاكّ ترميزها مضبوطًا على فك الترميز أثناء الكتابة. ويعمل كل شيء داخل متصفحك.
تسلسلات مرمَّزة شائعة
| المرمَّز | بعد الفك | ملاحظة |
|---|---|---|
%20 أو + | مسافة | لا تعني + مسافةً إلا في بيانات النماذج |
%2F | / | شرطة مائلة داخل قيمة معامل |
%3F %3D %26 | ? = & | محارف صياغة الاستعلام مستخدمة كبيانات |
%25 | % | علامة نسبة مئوية حرفية، أو علامة على ترميز مزدوج |
%C3%A9 | é | بايتان في UTF-8 لمحرف واحد |
%E2%82%AC | € | ثلاث بايتات في UTF-8 |
الروابط المرمَّزة مرتين
حين يوضع رابط داخل رابط آخر، كمعامل redirect أو url مثلًا، يُرمَّز غالبًا مرتين. وتعرفه من انتشار %25 في كل مكان: فـ%252F هي %2F مرمَّزة، وهذه بدورها شرطة مائلة مرمَّزة. فك الترميز، وتحقّق إن كانت %25 ما زالت موجودة، وكرّر فك الترميز حتى تختفي.
حين يفشل فك الترميز
تتّبع الأداة قواعد الدالة decodeURIComponent نفسها في المتصفح. فتُبلغ عن خطأ إن تبعت علامةَ النسبة المئوية أيُّ شيء غير خانتين ست عشريتين، كما في 100%، أو إن لم تشكّل البايتات UTF-8 صالحًا، وهذا يحدث مع الأنظمة القديمة جدًا التي رمّزت النصوص بـLatin-1 (%E9 للمحرف é بدل %C3%A9).
فك ترميز الروابط برمجيًا
- JavaScript:
decodeURIComponent(s.replace(/\+/g, ' ')) - Python:
urllib.parse.unquote_plus(s) - PHP:
urldecode($s) - Java:
URLDecoder.decode(s, StandardCharsets.UTF_8)
لفحص كل معاملات رابط ما، فك ترميز سلسلة الاستعلام كاملة أولًا. أما قيم Base64 الموجودة في الروابط، والتي تنتهي غالبًا بـ%3D، ففك ترميزها هنا ثم استخدم فك ترميز Base64.