表示言語: 日本語 英語に切り替え

Base64 エンコーダー & デコーダー

テキストを Base64 にエンコード、または Base64 をテキストにデコードします。UTF-8 対応で、ASCII を超える文字もサポート。

  1. テキストまたは Base64 文字列をボックスに貼り付けます。
  2. テキストを Base64 に変換するにはエンコードをクリック、Base64 をテキストに戻すにはデコードをクリックします。
  3. 値が URL または JWT に入る場合は URL セーフにチェックを入れます — - と _ を使い、パディングを省略します。
  4. 結果をクリップボードに入れるにはコピーをクリックします。
何ができるのか?

Base64 は任意のバイトを 64 個の印刷可能な ASCII 文字としてエンコードするので、バイナリに不向きな転送経路 (JSON 文字列、URL、メール本文、環境変数、HTTP Basic auth) でも壊さずに運べます。このツールは UTF-8 入力を正しく扱います — まず文字列を UTF-8 バイトにエンコードし、そのバイトを Base64 エンコードするので、非 ASCII 文字もきれいにラウンドトリップします。出力は入力より約 33% 大きくなります (3 バイトごとに 4 文字になります)。

テキスト "Hello, world!" をエンコード:

SGVsbG8sIHdvcmxkIQ==

同じテキストを URL セーフオンでエンコード (パディング削除):

SGVsbG8sIHdvcmxkIQ

絵文字テキスト "café ☕" をエンコード:

Y2Fmw6kg4piV

Base64 文字列がデコードされないのはなぜ?

  • standard と URL セーフの不一致。 - や _ を含む文字列は base64url であり、standard Base64 ではありません。URL セーフチェックボックスを切り替えて合わせます。
  • パディング欠落。 standard Base64 文字列の長さは 4 の倍数でなければなりません。SGVsbG8 は失敗し、SGVsbG8= は成功します。長さが 4 で割り切れるまで = でパディングします。
  • 値内の空白と改行。 一部のシステムは Base64 を 76 文字ごとに \n で折り返します。ほとんどのデコーダーはこれを許容しますが、厳格なものはしません。デコード前に空白を削除してください。
  • 誤って二重にデコード。 U0dWc2JHOA== をデコードすると SGVsbG8 になり、これはそれ自体が Base64 文字列です。出力がまた Base64 のように見える場合は、もう一度デコードしてください。
  • 非 UTF-8 バイナリデータ。 デコードされたバイトが有効な UTF-8 でない場合 (例: PNG ヘッダー)、テキストとしてデコードすると失敗するか文字化けします。バイナリにはファイル対応の Base64 ツールを使用してください。
  • スマートクォートや表示される省略記号。 ワープロソフトからコピーすると " がカーリークォートに置き換わったり、長い文字列が省略記号で切り詰められたりします。まずプレーンテキストエディタ経由で貼り付けてください。
よくある質問

standard Base64 と URL セーフ Base64 の違いは何ですか?

Standard Base64 (RFC 4648) は + と / を使い、= でパディングします。URL セーフ Base64 (base64url) は + を - に、/ を _ に置き換え、通常パディングを省略するため、文字列は URL パスまたはクエリパラメータとして変更されずに残ります。JWT は base64url を使います。出力が URL に入るときは URL セーフチェックボックスを選択してください。

このツールは絵文字や非 ASCII テキストを正しく処理しますか?

はい。入力はまず UTF-8 バイトとしてエンコードされ、次にそれらのバイトが Base64 エンコードされます。デコードは両方のステップを逆にします。だからこそ "café" を貼り付けて結果をデコードすると "café" が返り、mojibake にはなりません。多くの古い Base64 ツールは Latin-1 を想定して ASCII を超えるものを壊します。

画像や PDF のようなバイナリファイルをエンコードできますか?

このページはテキストのみをエンコードします。ファイルを Base64 エンコードするには、それをバイナリとして読むツールにドロップしてください (または FileReader.readAsDataURL でブラウザコンソールを使用)。このツールは文字列をエンコードするためのものです — 資格情報、設定、JSON フィールドを埋め込む典型的なユースケースです。

デコード結果がゴミに見えるのはなぜですか?

通常、入力はそもそも Base64 ではなかったか、URL セーフ Base64 を standard としてデコードした (またはその逆) ためです。URL セーフチェックボックスを切り替えてみてください。もう一つの一般的な原因は、実際にはテキストではなく Base64 エンコードされたバイナリである文字列をデコードしていることです — その場合バイトは有効な UTF-8 ではありません。

= パディングは重要ですか?

Standard Base64 は出力の長さが 4 の倍数になるようにパディングします。ほとんどのデコーダーはパディングなしの入力を受け入れますが、一部の厳格なものは拒否します。URL セーフ Base64 は通常パディングを省略します。デコーダーが文句を言う場合、長さが 4 で割り切れるまで = を追加するか、すべて削除して再試行してください。

エンコードまたはデコードしたテキストを保存しますか?

いいえ。ここに貼り付けたテキストは保存しません。ページを閉じるか更新した瞬間に入力は破棄されます — 何も保持されず、エンコード・デコードした内容の記録は残りません。追加の安心層が欲しい場合は、ブラウザの developer tools を確認できます。