رمزگذاری و رمزگشایی URL

لینک یا متن را وارد کنید تا URL Encode/Decode شود و اجزای آدرس به‌صورت جدول نمایش داده شوند.

خروجی

این ابزار کاملا در مرورگر شما اجرا می‌شود و هیچ داده‌ای به سرور ارسال نمی‌شود.

فهرست مطالب

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

راهنمای استفاده از URL Encode / Decode

  1. متن یا لینک را وارد کنید.
  2. حالت را انتخاب کنید؛ رمزگذاری، رمزگشایی یا تجزیهٔ لینک.
  3. خروجی و جدول پارامترها را ببینید.

چرا لینک‌ها کدگذاری می‌شوند؟

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

روش رمزگذاری ساده است. نویسه اول با استاندارد UTF-8 به بایت تبدیل می‌شود و هر بایت با یک علامت درصد و دو نویسهٔ هگزادسیمال نوشته می‌شود. حرف انگلیسی یک بایت دارد و معمولا اصلا لازم نیست رمزگذاری شود. حرف فارسی دو بایت دارد و به شش نویسه تبدیل می‌شود. فاصله، که نمی‌تواند در نشانی باشد، به درصد و عدد بیست تبدیل می‌شود. به همین دلیل است که لینک فارسی کوتاه، پس از رمزگذاری چندین برابر بلند می‌شود.

رمزگذاری یک حرف فارسی
هر حرف فارسی دو بایت دارد و هر بایت سه نویسه می‌شود.

لینک فارسی؛ چرا هنگام کپی خراب می‌شود؟

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

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

رمزگذاری URL؛ دو روش

دو روش رمزگذاری
برای مقدار یک پارامتر، رمزگذاری کامل؛ برای لینک کامل، حفظ ساختار.

جاوااسکریپت دو تابع برای رمزگذاری دارد و ابزار هر دو را ارائه می‌دهد. رمزگذاری کامل، که پیش‌فرض ابزار است، همهٔ نویسه‌هایی را که در نشانی معنای ویژه دارند، از جمله خط مورب، دونقطه، علامت سؤال، علامت و و علامت مساوی، رمزگذاری می‌کند. این روش برای وقتی است که می‌خواهید متنی را به‌عنوان مقدار یک پارامتر در لینک بگذارید؛ مثلا متن جست‌وجو یا نشانی صفحه‌ای دیگر که باید به‌عنوان پارامتر منتقل شود. اگر این نمادها رمزگذاری نشوند، مرورگر و سرور آن‌ها را بخشی از ساختار لینک می‌فهمند و داده خراب می‌شود.

روش حفظ ساختار لینک، فقط نویسه‌هایی را رمزگذاری می‌کند که اصلا در نشانی مجاز نیستند، مثل حروف فارسی و فاصله، و نمادهای ساختاری را دست‌نخورده می‌گذارد. این روش برای رمزگذاری یک لینک کامل است که ساختارش باید بماند. لینک نمونهٔ ابزار، صفحهٔ جست‌وجویی با پارامتر محاسبه قسط وام و پارامتر منبع، را در نظر بگیرید. با حفظ ساختار، فقط عبارت فارسی و فاصله‌هایش رمزگذاری می‌شوند و بقیهٔ لینک، از پروتکل تا علامت و بین پارامترها، همان می‌ماند. با رمزگذاری کامل، کل لینک، حتی پروتکل و خط‌های مورب، به یک رشتهٔ درصددار تبدیل می‌شود که دیگر لینک قابل کلیک نیست، اما می‌تواند به‌عنوان مقدار پارامتر در لینک دیگری قرار بگیرد.

ورودی رمزگذاری کامل حفظ ساختار
وام %D9%88%D8%A7%D9%85 %D9%88%D8%A7%D9%85
a b a%20b a%20b
c=d c%3Dd c=d
e/f? e%2Ff%3F e/f?
x&y x%26y x&y

تجزیهٔ لینک؛ این لینک کجا می‌رود؟

حالت سوم ابزار، لینک کامل را به اجزایش می‌شکند. پروتکل، که معمولا امن یا معمولی است. دامنه، یعنی نام سایتی که لینک به آن می‌رود. پورت، اگر غیر از پیش‌فرض باشد. مسیر، به شکل خوانای رمزگشایی‌شده. بخش هش، که پس از علامت شارپ می‌آید و به جای مشخصی از صفحه اشاره می‌کند. و هر پارامتر، با نام و مقدار رمزگشایی‌شده‌اش، در یک ردیف جدا. لینک کامل هم به شکل خوانا بالای جدول نمایش داده می‌شود.

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

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

بسیاری از لینک‌هایی که در شبکه‌های اجتماعی، ایمیل‌های تبلیغاتی و تبلیغات می‌بینید، پارامترهایی برای ردیابی دارند؛ پارامترهایی که با utm شروع می‌شوند و منبع، رسانه و کمپین را نشان می‌دهند، یا شناسه‌هایی که شبکه‌های تبلیغاتی برای شناسایی کلیک اضافه می‌کنند. حالت تجزیه همهٔ این‌ها را جداگانه نشان می‌دهد. اگر می‌خواهید لینکی را بدون این پارامترها برای کسی بفرستید، کافی است همه‌چیز پس از علامت سؤال را حذف کنید؛ بیشتر صفحه‌ها بدون پارامترها هم درست باز می‌شوند.

اگر خودتان می‌خواهید لینک کمپین با پارامترهای ردیابی بسازید، ساخت لینک UTM این کار را با نام‌گذاری یکدست انجام می‌دهد و رمزگذاری را هم خودش رعایت می‌کند. برای بررسی لینکی که ساخته‌اید، آن را در حالت تجزیهٔ همین ابزار بچسبانید و ببینید همهٔ پارامترها درست خوانده می‌شوند.

کاربرد برای برنامه‌نویسان

برنامه‌نویسان وب و API با رمزگذاری نشانی سروکار مداوم دارند. وقتی کاربر عبارتی را در جست‌وجوی سایت وارد می‌کند، آن عبارت باید پیش از گذاشتن در نشانی، با رمزگذاری کامل کدگذاری شود؛ وگرنه عبارتی که علامت و یا مساوی دارد، پارامترهای دیگر را خراب می‌کند. وقتی نشانی بازگشت پس از ورود، یعنی صفحه‌ای که کاربر پس از ورود باید به آن برگردد، به‌عنوان پارامتر فرستاده می‌شود، باید کامل رمزگذاری شود. خطای رایج، رمزگذاری دوباره است؛ رشته‌ای که یک بار رمزگذاری شده، اگر دوباره رمزگذاری شود، علامت‌های درصدش به درصد و ۲۵ تبدیل می‌شوند و رمزگشایی یک‌باره دیگر متن اصلی را نمی‌دهد.

برای اشکال‌یابی چنین مواردی، رشتهٔ مشکوک را در حالت رمزگشایی بگذارید؛ اگر نتیجه هنوز علامت درصد داشت، یک بار دیگر رمزگشایی کنید. این نشانهٔ رمزگذاری دوباره در جایی از کد است. برخی سیستم‌ها هم، به‌ویژه فرم‌های قدیمی HTML، فاصله را به جای درصد و بیست با علامت جمع رمزگذاری می‌کنند؛ ابزار هنگام رمزگشایی، علامت جمع را فاصله در نظر می‌گیرد.

جدول نویسه‌های رایج

جدول زیر رمزگذاری چند نویسهٔ پرکاربرد را با روش رمزگذاری کامل نشان می‌دهد. این‌ها را لازم نیست حفظ کنید، اما شناختن چند تای اول، مثل فاصله و علامت و، خواندن لینک‌های کدگذاری‌شده را ساده‌تر می‌کند.

نویسه رمزگذاری‌شده
فاصله %20
علامت و (&) %26
مساوی (=) %3D
علامت سؤال انگلیسی %3F
خط مورب %2F
علامت شارپ %23
جمع (+) %2B
ات (@) %40
ویرگول فارسی %D8%8C
علامت سؤال فارسی %D8%9F
ی فارسی %DB%8C

نمونه؛ ساختن لینک جست‌وجو

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

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

دامنه‌های فارسی

علاوه بر مسیر و پارامترها، خود دامنه هم می‌تواند فارسی باشد؛ دامنه‌هایی با حروف غیرلاتین که با پسوندهای مختلف ثبت می‌شوند. اما دامنه‌ها با روش دیگری رمزگذاری می‌شوند. سیستم نام دامنه فقط حروف انگلیسی، رقم و خط تیره را می‌پذیرد و دامنه‌های بین‌المللی به رشته‌ای تبدیل می‌شوند که با xn و دو خط تیره شروع می‌شود؛ مثلا دامنه‌ای به نام ایران با پسوند آی‌آر، در واقع با چنین رشته‌ای در اینترنت شناخته می‌شود. مرورگرها گاهی این شکل را به جای شکل فارسی در نوار نشانی نشان می‌دهند، به‌ویژه وقتی دامنه حروفی از چند خط مختلف دارد.

این رفتار مرورگرها عمدی و امنیتی است. کلاهبرداران دامنه‌هایی می‌سازند که با حروف شبیه از خط‌های دیگر، مثل حروف سیریلیک، دقیقا شبیه دامنهٔ یک بانک یا سرویس مشهور به نظر می‌رسند. وقتی مرورگر شکل رمزگذاری‌شده را نشان می‌دهد، این فریب آشکار می‌شود. اگر در حالت تجزیهٔ ابزار، دامنه‌ای دیدید که با xn شروع می‌شود و انتظارش را نداشتید، با احتیاط بیشتری با لینک برخورد کنید.

لینک در پیامک و شبکه‌های اجتماعی

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

خطاهای رایج

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

نشانی‌های تغییرمسیر و لینک‌های کوتاه

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

لینک‌های کوتاه‌شده اما مقصد را در خودشان ندارند؛ فقط شناسه‌ای کوتاه‌اند که سرویس کوتاه‌کننده آن را به مقصد ترجمه می‌کند. این ابزار نمی‌تواند مقصد لینک کوتاه را نشان دهد، چون برای این کار باید لینک را باز کند. برخی سرویس‌های کوتاه‌کننده امکان پیش‌نمایش مقصد را دارند، مثلا با اضافه کردن نمادی به انتهای لینک.

خواندن لینک‌های طولانی

لینک‌های جست‌وجوی سایت‌های فروشگاهی، نقشه‌ها و سامانه‌ها گاهی صدها نویسه دارند و خواندنشان با چشم ناممکن است. حالت تجزیه این لینک‌ها را به جدولی مرتب تبدیل می‌کند که در آن، هر پارامتر در یک ردیف جداست. برای فهمیدن اینکه یک لینک فیلترشدهٔ فروشگاه چه فیلترهایی دارد، یا لینک نقشه به کدام مختصات اشاره می‌کند، همین جدول کافی است. اگر می‌خواهید بخشی از لینک را تغییر دهید، مقدار تازه را در حالت رمزگذاری کدگذاری کنید و به جای مقدار قبلی در لینک بگذارید تا ساختار لینک سالم بماند. پس از تغییر، لینک را یک بار دیگر تجزیه کنید تا مطمئن شوید همه‌چیز درست است.

حریم خصوصی

همهٔ رمزگذاری‌ها، رمزگشایی‌ها و تجزیه‌ها در مرورگر شما انجام می‌شوند و لینک‌ها به هیچ سروری فرستاده نمی‌شوند. ابزار لینک‌ها را باز نمی‌کند و به سایت مقصد درخواستی نمی‌فرستد؛ فقط متن آن‌ها را بررسی می‌کند.

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

اگر داده‌ای در قالب JSON دارید که در پارامتر لینک گذاشته شده، پس از رمزگشایی آن را با مرتب‌سازی JSON خوانا کنید. همهٔ ابزارهای برنامه‌نویسی در ابزارهای برنامه‌نویسی آمده‌اند.

آخرین بازبینی محتوا: · تیم تحریریه ابزار جیبی

سوالات متداول

encodeURI و encodeURIComponent چه فرقی دارند؟
encodeURIComponent همهٔ نویسه‌های رزرو شده مثل / ? & = را هم کدگذاری می‌کند و برای مقدار پارامترها مناسب است؛ encodeURI ساختار کلی لینک را حفظ می‌کند.
چرا لینک فارسی پس از کپی به حروف عجیب تبدیل می‌شود؟
نشانی‌های وب فقط حروف و اعداد انگلیسی و چند نماد را مستقیم می‌پذیرند؛ حروف فارسی به شکل رمزگذاری‌شده با علامت درصد نوشته می‌شوند. مرورگر آن را فارسی نشان می‌دهد، اما هنگام کپی، شکل واقعی را برمی‌دارد.
چطور لینک کدگذاری‌شده را به فارسی برگردانم؟
لینک را در ابزار بچسبانید و حالت رمزگشایی را بزنید تا شکل خوانای فارسی آن نمایش داده شود. لینک کدگذاری‌شده و خوانا هر دو به یک صفحه می‌روند.
علامت درصد در لینک یعنی چه؟
نشانهٔ یک بایت کدگذاری‌شده است؛ پس از آن دو نویسهٔ هگزادسیمال می‌آید که مقدار بایت را نشان می‌دهند. مثلا درصد و ۲۰ یعنی فاصله.
چطور پارامترهای یک لینک را ببینم؟
حالت تجزیهٔ لینک را بزنید؛ ابزار پروتکل، دامنه، پورت، مسیر، هش و تک‌تک پارامترها را با مقدار خوانایشان در جدول نشان می‌دهد.

این ابزار چقدر برایتان مفید بود؟

اولین نفری باشید که به این ابزار امتیاز می‌دهد.

↑ ↓ جابه‌جاییEnter باز کردنEsc بستن