エンコード

Gzip/Deflate ↔ Base64

テキストを Gzip または Deflate で圧縮し、結果を Base64 でエンコード — その逆も可能。Compression Streams API を使いブラウザ内で完結。

Base64 by itself doesn't compress anything — quite the opposite, it grows the size by about 33%. To send large text compactly through a text-only channel, it's first compressed with Gzip or Deflate, and only then is the result Base64-encoded.

How to use it

Common uses

Things to keep in mind

Compression only pays off on sufficiently large, compressible text — on short strings the Gzip header overhead plus the Base64 expansion can actually make the result bigger.

Deflate skips Gzip's headers, so its output is more compact, but the format is less self-describing: the receiving side needs to know in advance that it's Deflate specifically.

このツールに関する記事: Gzip + Base64:テキストとして送るためのデータ圧縮

よくある質問

Gzip と Deflate の違いは何ですか?

Deflateは圧縮アルゴリズム自体を指し、Gzipはそのdeflateデータにヘッダーとチェックサム(CRC)を付加したフォーマットです。同じ圧縮アルゴリズムを使っていても、データの先頭に付く情報が異なるため互換性はありません。

エンコード後のデータが元より大きくなることはありますか?

あります。特に短いテキストの場合、圧縮によるヘッダーやメタデータのオーバーヘッドがデータ削減分を上回り、Base64エンコードも加わることでかえって元のテキストより大きくなることがあります。

入力したテキストはサーバーに送信されますか?

いいえ、圧縮・伸長・Base64変換はすべてブラウザのCompression Streams APIを使ってブラウザ内で完結しており、外部に送信されることはありません。

なぜ展開時に「invalid header」エラーが出ることがあるのですか?

最もよくある原因はフォーマットの取り違えです。ヘッダーのない「生の」Deflateとして圧縮されたデータを、独自のヘッダーとCRC-32を期待するGzipとして展開しようとしている(あるいはその逆)場合に起こります。ツールの設定でフォーマットを切り替えてみてください。

圧縮すれば必ず最終的なサイズは小さくなりますか?

いいえ。非常に短い文字列では、Gzipヘッダーのオーバーヘッドとその後のBase64による増加分が圧縮の効果を上回ることがあります。この手法は、十分に大きく圧縮しやすいテキストデータでのみ意味があります。

記事: エンコード

Base64とは何か、なぜ必要で、どう動くのか

Base64がバイナリデータをASCIIテキストにどう変換するか、実際にいつ必要になるか。

Base32:Base64との違いと、どんな場面で便利か

大文字小文字を区別しないBase32のアルファベットと、Base64より便利な場面。

URL Encode/Decode:リンクにおけるパーセントエンコーディング

アドレスやパラメータ中の特殊文字が%XXの並びに変わる仕組み。

HTML Entities:特殊文字を安全に表示する方法

< > &をエスケープすべき理由と、それがマークアップの破損をどう防ぐか。

JWT:トークンの構造と「デコード」の意味

JWTのheader、payload、signatureと、デコードが署名検証と同じでない理由。

Unicode Escape:\uXXXX形式が意味するもの

JSONやJS文字列に現れる\u0041のようなシーケンスがどこから来て何を意味するか。

ROT13とシーザー暗号:単純な文字の置き換え

13文字分のシフトがROT13を自己反転にする理由と、今なお使われる理由。

Punycode:国際化ドメイン名がDNSでどう動くか

非ラテン文字を含むドメインがxn--プレフィックス付きのASCII形式にどう変わるか。

モールス符号:テキストが点と線に変わる仕組み

文字を点と線でエンコードする原理と、モールス符号が今どこで使われているか。

Data URI:画像をコードに直接埋め込むべき場面

Data URIがファイルの内容をHTMLやCSSに直接埋め込む仕組みと、それが有効な場面。

XML Entities:XML文書内の文字をエスケープする

これがないと解析時に文書が壊れる、XMLの5つの必須エンティティ。