Base64 エンコーダー & デコーダー
テキストを Base64 にエンコード、または Base64 をテキストにデコードします。UTF-8 対応で、ASCII を超える文字もサポート。
- テキストまたは Base64 文字列をボックスに貼り付けます。
- テキストを Base64 に変換するにはエンコードをクリック、Base64 をテキストに戻すにはデコードをクリックします。
- 値が URL または JWT に入る場合は URL セーフにチェックを入れます — - と _ を使い、パディングを省略します。
- 結果をクリップボードに入れるにはコピーをクリックします。
何ができるのか?
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 を確認できます。