کدگذاری 🔒 در مرورگر اجرا می‌شود — داده‌ای ارسال نمی‌شود

رمزگشای URL

یک URL یا query string کدگذاری‌شده را جای‌گذاری کنید و آن را هم‌زمان با تایپ رمزگشایی‌شده بخوانید؛ همراه با نویسه‌های UTF-8 مثل حروف فارسی.

ورودی
خروجی

رمزگشایی متن URL-encoded

URLها فقط مجموعه محدودی از نویسه‌ها را می‌توانند حمل کنند، پس بقیه به‌صورت درصدی کدگذاری می‌شوند: فاصله‌ها، حروف دارای علائم آوایی، خط‌های غیرلاتین مثل فارسی و نویسه‌هایی که در URL معنای خاصی دارند، مثل &، = و ?. فایل‌های لاگ، پارامترهای ریدایرکت، تگ‌های UTM و خطاهای API پر از این دنباله‌ها هستند و رمزگشایی‌شان سریع‌ترین راه برای دیدن چیزی است که واقعاً ارسال شده است.

این صفحه کدگذار و رمزگشای URL را در حالت رمزگشایی هم‌زمان با تایپ باز می‌کند. همه‌چیز در مرورگر شما اجرا می‌شود.

نمودار: «a b&c=é» کاراکتر به کاراکتر به «a%20b%26c%3D%C3%A9» کدگذاری می‌شود.کاراکتربایت‌های UTF-8کدشدهa61a␣20%20b62b&26%26c63c=3D%3DéC3 A9%C3%A9بدون تغییر: حروف، ارقام و ‎- _ . ~تبدیل به ‎%XX
حروف بدون تغییر می‌مانند. فاصله و کاراکترهای رزروشده‌ی & و = به ‎%20، ‎%26 و ‎%3D تبدیل می‌شوند، و é اول به دو بایت UTF-8 خودش یعنی C3 و A9 تبدیل می‌شود و هر بایت به‌شکل ‎%XX نوشته می‌شود.

دنباله‌های کدگذاری‌شده رایج

کدگذاری‌شدهرمزگشایی‌شدهتوضیح
%20 یا +فاصله+ فقط در داده فرم به معنای فاصله است
%2F/اسلش درون مقدار یک پارامتر
%3F %3D %26? = &نویسه‌های نحو query که به‌عنوان داده به کار رفته‌اند
%25%علامت درصد واقعی، یا نشانه کدگذاری دوباره
%C3%A9éدو بایت UTF-8 برای یک نویسه
%E2%82%AC€سه بایت UTF-8

URLهای دو بار کدگذاری‌شده

وقتی یک URL درون URL دیگری قرار می‌گیرد، مثلاً به‌عنوان پارامتر redirect یا url، اغلب دو بار کدگذاری می‌شود. آن را از %25 که همه‌جا دیده می‌شود می‌شناسید: %252F شکل کدگذاری‌شده %2F است که خودش یک اسلش کدگذاری‌شده است. رمزگشایی کنید، ببینید %25 هنوز هست یا نه، و تا وقتی از بین نرفته دوباره رمزگشایی کنید.

وقتی رمزگشایی شکست می‌خورد

رمزگشا از همان قواعد decodeURIComponent در مرورگر پیروی می‌کند. اگر پس از علامت درصد چیزی جز دو رقم هگز بیاید، مثل 100%، یا بایت‌ها UTF-8 معتبری نسازند، خطا گزارش می‌دهد. حالت دوم در سیستم‌های بسیار قدیمی رخ می‌دهد که متن را با Latin-1 کدگذاری می‌کردند (%E9 برای é به جای %C3%A9).

رمزگشایی URL در کد

  • JavaScript: decodeURIComponent(s.replace(/\+/g, ' '))
  • Python: urllib.parse.unquote_plus(s)
  • PHP: urldecode($s)
  • Java: URLDecoder.decode(s, StandardCharsets.UTF_8)

برای بررسی همه پارامترهای یک URL، ابتدا کل query string را رمزگشایی کنید. برای مقدارهای Base64 درون URL، که اغلب با %3D تمام می‌شوند، اینجا رمزگشایی کنید و سپس از دیکد Base64 استفاده کنید.

آموزش‌های مرتبط