UTILS.
ทำงานในเบราว์เซอร์ 100%
🗜️

บีบอัดและคลายบีบอัด Gzip / Zlib / Deflate

บีบอัดหรือคลายบีบอัดข้อความด้วยรูปแบบ gzip, zlib (deflate) หรือ raw DEFLATE ในเบราว์เซอร์ พร้อมเอาต์พุต base64/hex และอัตราส่วนการบีบอัด

ป้อนข้อมูลด้านบนเพื่อบีบอัดหรือคลายบีบอัด

เกี่ยวกับเครื่องมือนี้

เครื่องมือ Gzip / Zlib / Deflate บีบอัดและคลายบีบอัดข้อมูลทั้งหมดในเบราว์เซอร์ของคุณโดยใช้ CompressionStream และ DecompressionStream API แบบเนทีฟ เลือกรูปแบบคอนเทนเนอร์ — gzip (รูปแบบ .gz พร้อม magic bytes 0x1F 0x8B) zlib/deflate (ข้อมูล DEFLATE ที่ห่อด้วยเฮดเดอร์ zlib) หรือ deflate-raw (DEFLATE เปล่าไม่มีเฮดเดอร์) — และทิศทาง การบีบอัดรับข้อความ UTF-8 ของคุณและคืนไบต์ที่บีบอัดที่เข้ารหัสเป็น base64 หรือฐานสิบหก; การคลายบีบอัดรับ base64 หรือฐานสิบหกและคืนข้อความเดิม

เนื่องจากมันใช้การบีบอัดแบบสตรีมมิงในตัวของเบราว์เซอร์ จึงไม่มีการอัปโหลดและไม่มีไลบรารีภายนอกถูกโหลด — ข้อมูลของคุณอยู่บนอุปกรณ์ของคุณ รูปแบบทั้งสามไม่สามารถใช้แทนกันได้: gzip และ zlib เพิ่มเฮดเดอร์และเช็คซัมที่ต่างกัน (CRC-32 สำหรับ gzip, Adler-32 สำหรับ zlib) รอบ payload DEFLATE เดียวกัน ขณะที่ deflate-raw ละทั้งสอง ดังนั้นคุณต้องคลายบีบอัดด้วยรูปแบบเดียวกับที่คุณบีบอัด หลังการบีบอัด เครื่องมือรายงานขนาดเดิม ขนาดที่บีบอัด และอัตราส่วนการบีบอัดเป็นเปอร์เซ็นต์ (1 − compressed / original) ซึ่งบอกว่าเอาต์พุตเล็กลงแค่ไหน

ข้อความที่ซ้ำมากบีบอัดได้อย่างมาก; อินพุตสั้นหรือที่บีบอัดแล้วอาจโตขึ้นได้จริงเพราะโอเวอร์เฮดของเฮดเดอร์และเช็คซัม ซึ่งเป็นเรื่องปกติ หากเบราว์เซอร์ของคุณไม่รองรับ CompressionStream เครื่องมือจะแจ้งแทนที่จะให้เอาต์พุตที่ผิด โปรดทราบว่า API แบบเนทีฟใช้ระดับการบีบอัดเริ่มต้นตายตัว จึงไม่มีตัวเลือกระดับ คัดลอกผลลัพธ์ได้ด้วยคลิกเดียว

คำถามที่พบบ่อย

gzip, zlib และ raw deflate ต่างกันอย่างไร?
ทั้งสามใช้อัลกอริทึม DEFLATE gzip ห่อด้วยเฮดเดอร์ 10 ไบต์ magic bytes 0x1F 0x8B และ CRC-32; zlib (deflate) ห่อด้วยเฮดเดอร์สั้นและเช็คซัม Adler-32; deflate-raw ไม่มีเฮดเดอร์หรือเช็คซัม คลายบีบอัดด้วยรูปแบบเดียวกับที่คุณใช้บีบอัด
การคลายบีบอัดคาดหวังอินพุตอะไร?
วางข้อมูลที่บีบอัดเป็น base64 หรือฐานสิบหก (ให้ตรงกับตัวเลือกการเข้ารหัสเอาต์พุต) เครื่องมือถอดรหัสเป็นไบต์และ inflate ด้วยรูปแบบที่เลือก หากไบต์ถูกตัดหรือรูปแบบผิด มันจะรายงานว่าคลายบีบอัดข้อมูลไม่ได้
ทำไมข้อความของฉันใหญ่ขึ้นหลังบีบอัด?
gzip และ zlib เพิ่มไบต์เฮดเดอร์และเช็คซัม และ DEFLATE ต้องการความซ้ำเพียงพอเพื่อหาการประหยัด สำหรับอินพุตสั้นมากหรือที่สุ่ม/บีบอัดแล้ว โอเวอร์เฮดนั้นมากกว่าประโยชน์ ดังนั้นเอาต์พุตจึงใหญ่ขึ้นได้ — เป็นเรื่องปกติ
เลือกระดับการบีบอัดได้ไหม?
ไม่ CompressionStream API แบบเนทีฟไม่มีพารามิเตอร์ระดับ จึงใช้ระดับเริ่มต้นตายตัว เอาต์พุตยังคงเป็นสตรีม gzip/zlib/deflate ที่ถูกต้องสมบูรณ์ที่เครื่องมือมาตรฐานใดๆ (gunzip, zlib, pako) สามารถคลายบีบอัดได้

เครื่องมือเพิ่มเติม