رمزگشای URL
یک URL یا query string کدگذاریشده را جایگذاری کنید و آن را همزمان با تایپ رمزگشاییشده بخوانید؛ همراه با نویسههای UTF-8 مثل حروف فارسی.
رمزگشایی متن URL-encoded
URLها فقط مجموعه محدودی از نویسهها را میتوانند حمل کنند، پس بقیه بهصورت درصدی کدگذاری میشوند: فاصلهها، حروف دارای علائم آوایی، خطهای غیرلاتین مثل فارسی و نویسههایی که در URL معنای خاصی دارند، مثل &، = و ?. فایلهای لاگ، پارامترهای ریدایرکت، تگهای UTM و خطاهای API پر از این دنبالهها هستند و رمزگشاییشان سریعترین راه برای دیدن چیزی است که واقعاً ارسال شده است.
این صفحه کدگذار و رمزگشای URL را در حالت رمزگشایی همزمان با تایپ باز میکند. همهچیز در مرورگر شما اجرا میشود.
دنبالههای کدگذاریشده رایج
| کدگذاریشده | رمزگشاییشده | توضیح |
|---|---|---|
%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 استفاده کنید.