Tarayıcınız güncel değil

Bu siteyi görüntülemek için tarayıcınızın veya cihazınızın işletim sisteminin güncellenmesi gerekiyor.

Your browser is out of date. Please update iOS or your browser to view this site.

پرش به محتوای اصلی
Gizke.com
وبلاگ

رمزگذار و تجزیه‌گر URL

روی دستگاه شما اجرا می‌شود. چیزی ارسال نمی‌شود.
هر نویسه رزرو‌شده را می‌گریزاند. از این برای یک مقدار تکی که به رشته کوئری یا بخشی از مسیر می‌رود استفاده کنید.

نتیجه اینجا نمایش داده می‌شود

URL و رشته‌های کوئری را رمزگذاری یا رمزگشایی کنید، یا URL را به بخش‌هایش تجزیه و کوئری را زنده ویرایش کنید – همه در مرورگر شما.

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

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

رمزگذاری درصدی چیست؟
رمزگذاری درصدی (که رمزگذاری URL نیز نامیده می‌شود) یک نویسه را با % به‌همراه مقدار هگزادسیمال دو رقمی آن جایگزین می‌کند، که برای هر بایت از نمایش UTF-8 آن نویسه تکرار می‌شود. به همین ترتیب یک URL می‌تواند فاصله (%20)، علامت & (%26) یا یک شکلک را بدون اشتباه‌گرفتن این نویسه‌ها با نحو خود URL، حمل کند.
تفاوت encodeURIComponent و encodeURI چیست؟
encodeURIComponent همه چیز به‌جز مجموعه کوچکی از نویسه‌های غیررزرو‌شده را می‌گریزاند، که آن را برای یک مقدار تکی - یک پارامتر کوئری یا بخشی از مسیر - انتخاب درستی می‌کند، زیرا نویسه‌هایی مانند & و = را نیز که در غیر این صورت به‌عنوان ساختار URL خوانده می‌شوند، می‌گریزاند. encodeURI برای کل یک URL در نظر گرفته شده است: نویسه‌های ساختاری مانند :، /، ?، & و # را دست‌نخورده باقی می‌گذارد تا URL همچنان کار کند، و فقط نویسه‌هایی را می‌گریزاند که یک URL واقعاً نمی‌تواند در خود جای دهد، مانند فاصله. عبور دادن کل یک URL از encodeURIComponent آن را خراب می‌کند، زیرا خط‌های مورب و دونقطه‌ها نیز گریزانده می‌شوند.
آیا هنوز باید از escape() و unescape() استفاده کنم؟
خیر. هر دو در همان اولین نسخه از استاندارد جاوااسکریپت که encodeURIComponent را نیز معرفی کرد، منسوخ اعلام شدند، زیرا escape() متن غیر ASCII را به شکلی که HTTP و URLهای مدرن انتظار دارند رمزگذاری نمی‌کند - برای هر چیزی خارج از Latin-1 از قالب غیراستاندارد %uXXXX استفاده می‌کند که decodeURIComponent نمی‌تواند آن را بازخوانی کند. این ابزار این گزینه را فقط برای این نگه می‌دارد که بتوانید خروجی یک سیستم قدیمی را بررسی کنید.
چرا علامت + در رشته کوئری به فاصله تبدیل می‌شود؟
رشته‌های کوئری از نظر تاریخی از ارسال فرم‌های HTML می‌آیند که از قالب application/x-www-form-urlencoded استفاده می‌کنند: این قالب یک فاصله واقعی را به‌جای %20 به‌صورت + رمزگذاری می‌کند، و تجزیه‌گر این ابزار (و همچنین URLSearchParams در جاوااسکریپت) هنگام رمزگشایی هر دو را به‌عنوان فاصله در نظر می‌گیرند. اگر مقداری واقعاً به یک علامت جمع لفظی نیاز داشته باشد، خود آن باید به‌صورت %2B رمزگذاری درصدی شود.
با یک پارامتر تکراری مانند ?tag=a&tag=b چه اتفاقی می‌افتد؟
چیزی از دست نمی‌رود - این ابزار هر رخداد را به‌ترتیب، به‌صورت یک ردیف مجزا در جدول پارامترهای کوئری حفظ می‌کند، دقیقاً همان‌طور که بیشتر فریم‌ورک‌های سمت سرور یک کلید تکراری را در یک فهرست جمع‌آوری می‌کنند. ویرایش یا حذف یک ردیف روی بقیه تأثیری ندارد.
چرا تجزیه‌گر برای URL من https:// را فرض کرد؟
رشته‌ای مانند example.com/path پروتکلی ندارد، بنابراین نه مرورگر و نه این ابزار نمی‌توانند بدانند که آیا این یک آدرس وب است، برای پروتکلی دیگر در نظر گرفته شده، یا صرفاً متنی ساده است. تجزیه‌گر به‌جای رد کردن آن، https:// را فرض می‌کند تا همچنان بتوانید آن را بررسی و ویرایش کنید - هر بار که این اتفاق می‌افتد راهنمایی نمایش داده می‌شود، و اگر طرح دیگری مورد نظر بوده، می‌توانید فیلد پروتکل را اصلاح کنید.

این ابزار را به اشتراک بگذارید

وبلاگدرباره ماتماسشرایط استفادهسیاست حفظ حریم خصوصی