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

کدگذار و کدگشای URL

URL، رشته کوئری و پارامترها را به‌صورت درصدی کدگذاری و کدگشایی کنید، در مرورگر شما.

ورودی
خروجی

کدگذاری و رمزگشایی URL — تبدیل متن و پارامترهای آدرس به‌صورت آنلاین

یک آدرس اینترنتی فقط مجموعه محدودی از کاراکترها را می‌پذیرد. هر چیز دیگری — فاصله، حروف فارسی، علامت &، اسلش داخل یک مقدار، ایموجی یا متن ژاپنی — باید پیش از سفر در یک لینک، Query String یا ارسال فرم به شکل درصدی کد شود. این ابزار رایگان همین تبدیل را در هر دو جهت و در یک لحظه انجام می‌دهد، بدون آنکه چیزی به سرور فرستاده شود.

متن را بچسبانید و کدگذاری بزنید تا رشته‌ای آماده انتقال بگیرید، یا یک آدرس کدشده را بچسبانید و با رمزگشایی آن را خوانا کنید. انتخابگر حالت به شما امکان می‌دهد میان encodeURIComponent و encodeURI جابه‌جا شوید؛ همین انتخاب تعیین می‌کند لینک شما کار کند یا بی‌سروصدا خراب شود.

نمودار: «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 نوشته می‌شود.

کدگذاری URL چیست

کدگذاری URL که به آن کدگذاری درصدی هم می‌گویند، هر کاراکتر ناامن را با علامت درصد و مقدار هگزادسیمال بایت آن جایگزین می‌کند. فاصله به %20، اسلش به %2F و علامت سؤال به %3F تبدیل می‌شود. کاراکترهای خارج از ASCII ابتدا به بایت‌های UTF-8 تبدیل و سپس بایت به بایت کد می‌شوند؛ به همین دلیل هر حرف فارسی معمولاً به دو گروه درصدی و هر ایموجی تا چهار گروه تبدیل می‌شود.

encodeURIComponent یا encodeURI؟

موقعیتحالتدلیل
کدگذاری مقدار یک پارامترencodeURIComponentکاراکترهای &، =، ?، / و # را Escape می‌کند تا مقدار از فیلد خودش بیرون نزند
کدگذاری یک بخش از مسیر مثل SlugencodeURIComponentجلوی اسلش داخل مقدار را می‌گیرد تا سطح مسیر جدیدی ساخته نشود
مرتب کردن یک آدرس کامل که از قبل داریدencodeURIکاراکترهای ساختاری را دست‌نخورده می‌گذارد و آدرس همچنان معتبر می‌ماند
فرستادن یک آدرس بازگشت داخل آدرس دیگرencodeURIComponentآدرس درونی یک مقدار است، نه ساختار

روش کدگذاری و رمزگشایی آدرس

  1. متن، مقدار پارامتر یا آدرس کامل را در کادر ورودی بچسبانید.
  2. برای یک مقدار تکی encodeURIComponent و برای یک آدرس کامل encodeURI را انتخاب کنید.
  3. برای کدگذاری روی کدگذاری و برای برگرداندن روی رمزگشایی بزنید.
  4. خروجی را مستقیم در کد، نوار آدرس مرورگر یا کلاینت API خود بچسبانید.

کاراکترهایی که بیشتر از همه می‌بینید

  • %20 — فاصله. در ارسال فرم‌های قدیمی همین نقش را + بازی می‌کند.
  • %2F — اسلش، وقتی بخشی از مقدار است و نه بخشی از مسیر.
  • %3F و %26 — علامت سؤال و &، دو جداکننده پارامترها.
  • %3D — علامت مساوی که نام پارامتر را از مقدارش جدا می‌کند.
  • %23 — علامت #، که در غیر این صورت آغاز شناسه بخش صفحه خوانده می‌شود.
  • %2B — علامت به‌علاوه، که اگر کد نشود ممکن است فاصله تفسیر شود.

چه زمانی به کدگذار URL نیاز دارید

  • ساخت لینک‌های جستجو، فیلتر یا صفحه‌بندی که ورودی کاربر در Query String آنها می‌نشیند.
  • فرستادن آدرس بازگشت به‌عنوان redirect_uri برای یک ارائه‌دهنده OAuth یا درگاه پرداخت.
  • افزودن پارامترهای کمپین UTM که شامل فاصله یا علائم نگارشی هستند.
  • رمزگشایی یک لینک ردیابی طولانی در ایمیل تا ببینید واقعاً به کجا می‌رود.
  • اشکال‌زدایی فراخوانی API که پارامتر آن حاوی JSON، مهر زمانی یا امضا است.
  • کار با Slugهای غیرلاتین تا عنوان فارسی، ژاپنی یا سیریلیک از کپی و پیست جان سالم به در ببرد.

اشتباه‌هایی که لینک را خراب می‌کنند

  • کدگذاری دوباره. کد کردن رشته‌ای که قبلاً کد شده، %20 را به %2520 تبدیل می‌کند. اول رمزگشایی کنید، بعد یک بار کدگذاری.
  • کد کردن کل آدرس با encodeURIComponent. در این حالت :// و اسلش‌ها هم Escape می‌شوند و دیگر آدرس نیست.
  • اشتباه گرفتن + با %20. در Query String علامت به‌علاوه می‌تواند معنی فاصله بدهد، اما در مسیر یک علامت واقعی است.
  • فراموش کردن UTF-8. صفحه‌های قدیمی با ISO-8859-1 گروه‌هایی می‌سازند که رمزگشای امروزی نمی‌تواند برگرداند.
  • اعتماد به مقدار رمزگشایی‌شده. رمزگشایی به معنی پاک‌سازی نیست؛ ورودی را پیش از استفاده در کوئری یا HTML اعتبارسنجی کنید.

همه چیز داخل مرورگر شما اجرا می‌شود

این ابزار از توابع JavaScript خود مرورگر استفاده می‌کند، بنابراین چیزی آپلود، ذخیره یا در لاگ ثبت نمی‌شود. به این ترتیب آدرس‌های امضاشده، شناسه‌های نشست و پارامترهای حاوی اطلاعات مشتری همان‌جا می‌مانند که باید بمانند: روی دستگاه خودتان.

URL Encode در جاوااسکریپت، پایتون، PHP، جاوا و C#

زبانکدگذاری یک مقدارنکته
JavaScriptencodeURIComponent(value)encodeURI برای یک آدرس کامل
Pythonurllib.parse.quote(value, safe='')quote_plus فاصله را به + تبدیل می‌کند
PHPrawurlencode($value)urlencode برای فاصله از + استفاده می‌کند
JavaURLEncoder.encode(value, "UTF-8")برای فاصله + تولید می‌کند؛ داخل مسیر آن را با %20 جایگزین کنید
C# / .NETUri.EscapeDataString(value)HttpUtility.UrlEncode از + استفاده می‌کند
PowerShell[uri]::EscapeDataString($value)همان قواعد .NET

ابزارهای مرتبط

آدرس‌ها و داده‌ها معمولاً کنار هم می‌آیند. داده باینری جاسازی‌شده را با کدگذار Base64 باز کنید، توکن داخل آدرس بازگشتی را با رمزگشای JWT بخوانید، پاسخ API را با فرمت‌کننده JSON مرتب کنید و الگوها را با آزمایشگر Regex تست کنید.

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