Base64ファイルエンコーダー

ファイルをBase64に変換

Funnel mode keeps the selected file in this browser for up to two hours so it can move between steps. It is not uploaded.

Base64は、あらゆるバイナリファイルを印字可能なASCII文字列へ変換します。これにより、JSON、YAML、メール本文、SMS、チャットへのコピー&ペーストなど、テキストだけを想定したシステムを通過できます。このエンコーダーはPDF、画像、ZIP、さらには実行ファイルまで任意のファイルを受け取り、data: URIやAPIのペイロード、設定ファイルにそのまま入れられるBase64表現を返します。

ファイルをエンコードする方法

  1. 1

    任意のファイルをエンコーダーへドロップ

    すべてのバイナリ形式に対応します。ブラウザが生のバイト列を読み取ります。

  2. 2

    バイト列がBase64でエンコードされる

    3バイトごとに、アルファベット`A-Z a-z 0-9 + /`から4つのASCII文字になります。

  3. 3

    出力形式を選ぶ

    プレーンなBase64、ブラウザーが報告したMIMEタイプ(未指定時は汎用値)付きの`data:` URI、またはJSON文字列として安全な形式から選べます。

  4. 4

    テキストとしてコピーまたはダウンロード

    大きいファイルは`.txt`としてダウンロードし、小さいものはクリップボードへコピーします。

サイズのオーバーヘッド

Base64は3バイトを4文字へ膨らませるため、保存容量とネットワークコストが33%増えます。=によるパディングがさらに数バイトを加えます。おおまかな目安は次のとおりです。

入力ファイルのサイズ Base64テキストのサイズ
1 KB 1.33 KB
100 KB 133 KB
1 MB 1.33 MB
10 MB 13.3 MB

大きいバイナリファイルをHTMLやJSONにBase64で埋め込むと、ページの読み込みとパーサーのメモリをすぐに膨らませてしまいます。約10 KBを超えるものは、配信上の制約でどうしても必要な場合だけインラインにしてください。

よくある用途

  • データURI, CSSやHTML内の小さなインライン画像: url("data:image/png;base64,iVBORw0KGgo...")
  • メールの添付, MIMEマルチパート本文では、SMTPで安全に運ぶため添付ファイルをBase64でエンコードします。
  • JSONのペイロード, 1回のAPIリクエストで済ませるため、PDFやZIPをJSONのフィールドへ埋め込む場合。
  • YAML/設定ファイル, TLS鍵や小さなバイナリデータを設定ファイル内で運ぶ場合。

変種とパディング

RFC 4648の標準Base64アルファベットは、A-Za-z0-9+/の64記号です。=はアルファベットの一部ではなく、パディングです。URLセーフな出力(+-/_に置換)には専用の切り替えを使います。パディングは既定で含まれ、無効化できます。

プライバシーについて

ファイルは端末から外に出ません。FileReader APIがブラウザ内でバイト列を読み取り、JavaScriptがエンコードを行います。機密PDF、秘密鍵、未公開素材をエンコードするときに重要です。

よくある質問

エンコーダーで扱えるのは50 MB以下のファイル1つです。Base64の出力は元のファイルより大きく、ブラウザーのメモリに保持されるため、この上限によって過剰なメモリ使用を防ぎます。

URLやファイル名に適したアルファベットが必要な場合に使います。URLセーフなBase64(RFC 4648の5節)は+-に、/_に置き換えます。末尾の=を残すかどうかは、別のパディング設定で選べます。

data: URI出力の場合だけ重要です。data:image/png;base64,...は、デコードしたバイト列をどう表示するかをブラウザに伝えます。プレーンなBase64やJSONへの埋め込みでは、MIMEタイプはエンコード済みデータの一部ではありません。

HTMLにはdata:application/pdf;base64,... URLを記述できますが、最新のブラウザーではdata: URLへのトップレベル遷移がブロックされることが多く、ダウンロードの動作もブラウザー間で安定しません。大きな値はURL、メモリ、Content Security Policyの制限に達する場合もあります。確実にダウンロードさせるには、ブラウザーコードでBlobのオブジェクトURLを作成するか、HTTPSでホストしたファイルへリンクしてください。

関連ツール