UTILS.
۱۰۰٪ در مرورگر
🗜️

فشرده‌سازی و بازگشایی Gzip / Zlib / Deflate

متن را با قالب‌های بومی gzip، zlib (deflate) یا DEFLATE خام در مرورگر فشرده یا بازگشایی کنید، با خروجی base64/hex و نسبت فشرده‌سازی.

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

درباره این ابزار

ابزار Gzip / Zlib / Deflate داده‌ها را کاملاً در مرورگر شما با استفاده از APIهای بومی CompressionStream و DecompressionStream فشرده و بازگشایی می‌کند. قالب کانتینر را انتخاب کنید — gzip (قالب .gz با بایت‌های جادویی 0x1F 0x8B آن)، zlib/deflate (داده DEFLATE پیچیده‌شده در یک header مربوط به zlib)، یا deflate-raw (DEFLATE خالی بدون header) — و یک جهت. فشرده‌سازی متن UTF-8 شما را می‌گیرد و بایت‌های فشرده‌شده را به‌صورت base64 یا hex کدگذاری‌شده برمی‌گرداند؛ بازگشایی base64 یا hex را می‌گیرد و متن اصلی را برمی‌گرداند.

چون از فشرده‌سازی جریانی داخلی مرورگر استفاده می‌کند، هیچ‌چیزی بارگذاری نمی‌شود و هیچ کتابخانه خارجی بارگذاری نمی‌شود — داده شما روی دستگاه‌تان می‌ماند. این سه قالب قابل‌تعویض نیستند: gzip و zlib headerها و checksumهای متفاوتی (CRC-32 برای gzip، Adler-32 برای zlib) اطراف همان محموله DEFLATE اضافه می‌کنند، در حالی که deflate-raw هر دو را حذف می‌کند، بنابراین باید با همان قالبی که فشرده کردید بازگشایی کنید. بعد از فشرده‌سازی، این ابزار اندازه اصلی، اندازه فشرده‌شده و نسبت فشرده‌سازی را به‌صورت درصد (1 − compressed / original) گزارش می‌کند، که نشان می‌دهد خروجی چقدر کوچک‌تر است.

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

پرسش‌های پرتکرار

تفاوت بین gzip، zlib و raw deflate چیست؟
هر سه از الگوریتم DEFLATE استفاده می‌کنند. gzip آن را با یک header ۱۰ بایتی، بایت‌های جادویی 0x1F 0x8B و یک CRC-32 می‌پیچد؛ zlib (deflate) آن را با یک header کوتاه و یک checksum مربوط به Adler-32 می‌پیچد؛ deflate-raw هیچ header یا checksum ندارد. با همان قالبی که برای فشرده‌سازی استفاده کردید بازگشایی کنید.
بازگشایی چه ورودی‌ای انتظار دارد؟
داده فشرده‌شده را به‌صورت base64 یا hex بچسبانید (با انتخابگر کدگذاری خروجی مطابقت دهید). این ابزار آن را به بایت کدگشایی می‌کند و با قالب انتخاب‌شده inflate می‌کند. اگر بایت‌ها بریده یا قالب اشتباه باشند، اعلام می‌کند که داده قابل بازگشایی نبود.
چرا متن من بعد از فشرده‌سازی بزرگ‌تر شد؟
gzip و zlib بایت‌های header و checksum اضافه می‌کنند، و DEFLATE به تکرار کافی برای یافتن صرفه‌جویی نیاز دارد. برای ورودی بسیار کوتاه یا از قبل تصادفی/فشرده‌شده، آن سربار بر هر سودی می‌چربد، بنابراین خروجی می‌تواند بزرگ‌تر شود — که مورد انتظار است.
آیا می‌توانم سطح فشرده‌سازی را انتخاب کنم؟
خیر. API بومی CompressionStream یک پارامتر سطح در دسترس نمی‌گذارد، بنابراین یک سطح پیش‌فرض ثابت استفاده می‌شود. خروجی همچنان یک جریان gzip/zlib/deflate کاملاً معتبر است که هر ابزار استانداردی (gunzip، zlib، pako) می‌تواند بازگشایی کند.

ابزارهای بیشتر