GZIP圧縮&解凍 - Base64 GZIPエンコーダー オンライン
GZIPでテキストやファイルを圧縮・解凍。Base64出力、圧縮統計、.gzファイルダウンロード — 100%クライアントサイド処理。
よくある質問
GZIP圧縮とは何ですか?
GZIPはDEFLATEアルゴリズム(LZ77とハフマン符号化の組み合わせ)に基づくファイル形式および圧縮アルゴリズムです。Web上で最も広く使用されている圧縮形式で、ほぼすべてのHTTPサーバーとブラウザがContent-Encoding: gzipヘッダーを通じてサポートしています。
このツールの使い方は?
圧縮または解凍タブを選択します。圧縮するには、テキストを入力するかファイルをドラッグ&ドロップします。解凍するには、Base64エンコードされたGZIP文字列を貼り付けるか、.gzファイルをドロップします。
データは安全ですか?
データは100%安全で、ブラウザから外に出ることはありません。すべての圧縮と解凍は、ブラウザネイティブのCompressionStreamおよびDecompressionStream APIを使用して完全にクライアントサイドで実行されます。
GZIPとDeflateの違いは?
GZIPとDeflateは同じ基本圧縮アルゴリズム(DEFLATE、RFC 1951)を使用します。違いはラッパーです:GZIPはDeflate圧縮データの周りに10バイトのヘッダーと8バイトのフッターを追加します。
圧縮結果が入力より大きいのはなぜ?
GZIPは18バイトのオーバーヘッド(10バイトヘッダー + 8バイトフッター)とDeflate圧縮メタデータを追加します。非常に短い文字列(通常50〜100バイト未満)の場合、オーバーヘッドが圧縮の節約を上回ります。GZIPはHTML、JSON、XMLなどの反復パターンを持つ大きなテキストに最も効果的です。
Base64エンコードされたGZIPとは?
Base64エンコードされたGZIPは、データをGZIPで圧縮し、バイナリバイトをBase64 ASCII文字列としてエンコードした結果です。JSON/XMLフィールドへの圧縮データの保存やテキストのみのプロトコルを通じたデータ送信に使用されます。
どのブラウザがサポートしていますか?
このツールはCompressionStreamとDecompressionStream Web APIを使用しており、Chrome 80+、Edge 80+、Safari 16.4+、Firefox 113+でサポートされています。
コード例
// Compress text to Base64-encoded GZIP
async function compressToBase64(text) {
const stream = new Blob([new TextEncoder().encode(text)])
.stream()
.pipeThrough(new CompressionStream('gzip'));
const buf = await new Response(stream).arrayBuffer();
let binary = '';
new Uint8Array(buf).forEach(b => binary += String.fromCharCode(b));
return btoa(binary);
}
// Decompress Base64-encoded GZIP to text
async function decompressFromBase64(base64) {
const binary = atob(base64);
const bytes = Uint8Array.from(binary, c => c.charCodeAt(0));
const stream = new Blob([bytes])
.stream()
.pipeThrough(new DecompressionStream('gzip'));
return await new Response(stream).text();
}
// Usage
const compressed = await compressToBase64('Hello, World!');
console.log(compressed);
const decompressed = await decompressFromBase64(compressed);
console.log(decompressed); // "Hello, World!"