این ابزار درست کار نمی‌کند؟

دربارهٔ ابزار «رمزگذار URL آنلاین»

این ابزار یک رشته را برای استفاده ایمن در URLها به صورت درصدی رمزگذاری می‌کند. کاراکترهای ویژه مانند فاصله، &، =، ?، / و کاراکترهای غیر ASCII به شکل هگزادسیمال %XX آنها تبدیل می‌شوند (مثلاً فاصله به %20، & به %26).

رمزگذاری URL هر زمان که داده‌های کاربر را در یک رشته پرس‌و‌جو، یک بخش مسیر یا هر مؤلفه URL دیگر تعبیه می‌کنید، لازم است. بدون آن، مرورگرها و سرورها کاراکترهای ویژه را به عنوان جداکننده‌های نحوی اشتباه تفسیر می‌کنند — تبدیل یک پرس‌و‌جوی جستجو مانند «cats & dogs» به پارامترهای شکسته.

ابزار بسته به حالتی که انتخاب می‌کنید، یا کل URL را رمزگذاری می‌کند یا فقط یک مؤلفه. حالت مؤلفه تهاجمی هر چیزی را که می‌تواند اشتباه تفسیر شود رمزگذاری می‌کند؛ حالت URL کامل طرح پروتکل و ساختار را دست‌نخورده باقی می‌گذارد.

چطور از این ابزار استفاده کنم؟

چطور متن را برای استفادهٔ ایمن در URL با percent-encode کنم؟

  1. متن را بچسبانید

    رشتهٔ خام را در فیلد «Text» قرار دهید. ابزار هر کاراکتر خارج از مجموعهٔ URL-safe (`A-Z a-z 0-9 - _ . ~`) را به‌صورت byteهای `%XX` با UTF-8 encode می‌کند.

  2. «اجرا» را بزنید

    خروجی یک فیلد `encoded` است. مثال‌ها: `hello world` → `hello%20world`؛ `café` → `caf%C3%A9`؛ `a+b` → `a%2Bb` (چون `+` در query string به‌معنای space است).

  3. چه زمانی استفاده کنیم

    wrap کردن یک value قبل از قرار دادن آن در path یا query یک URL: `?q=` + encode(userInput). کل URL را encode نکنید — فقط component‌های فردی (path segment، query value)، وگرنه `://` و `?` را به هم می‌ریزید.

  4. component در برابر full URL

    این semantics `encodeURIComponent` — strict — است. `encodeURI` `?` و `:` را برای استفاده در یک URL کامل دست‌نخورده می‌گذارد. اگر تصادفاً double-encode کنید، `%20` به `%2520` تبدیل می‌شود؛ علامت: `%20` تحت‌اللفظی در صفحهٔ رندرشده نمایش داده می‌شود.