Base64 デコード — ブラウザで Base64 をテキストにデコード
Base64 文字列をプレーンテキストにデコードします。UTF-8、Latin-1 などのエンコーディングを自動検出、すべてブラウザ内で動作。アップロード不要、制限なし。
Base64 は「テキストでバイナリを表現する」共通語です。任意のバイト列を A-Z、a-z、0-9、+、/、= からなる表示可能な ASCII 文字列に変換します。バイナリをテキスト専用のチャンネルを通して送る必要があるあらゆる場面で利用されています。MIME メール添付、JSON Web Token(JWT)、CSS の data URL、鍵や証明書を埋め込む必要のある設定ファイルなど。元のバイト列へのデコードは、どのプログラミング言語でも一行で済む処理です。このようなツールが存在する理由は、その一行の処理を取り巻く無数のエッジケースが間違った答えを導くからです。
これらのエッジケースはすべてエンコーディングに関するもので、Base64 自体に関するものではありません。Base64 エンコーディング自体に曖昧さはありません。各文字は厳密に 6 ビットに対応します。しかし、デコード後のバイト列は元々何らかの文字エンコーディング(UTF-8、Latin-1、Windows-1252、Shift-JIS、GB2312)に属しており、Base64 文字列はそのうちどれが使われたかという情報を一切持ちません。Base64 をデコードするとバイト列が得られます。そのバイト列をテキストに変換するには正しい文字エンコーディングを選ぶ必要があり、選び間違えると文字化けが発生します。UTF-8 のバイトを Latin-1 として解釈した際に現れる é や ’ といった代表的な化けです。本ツールの自動検出はまず UTF-8 を試し、現代のペイロードの 95% をカバー、残りは Latin-1 にフォールバックします。
最後に受け渡しについて:デコード結果がテキストで、別のドキュメントに埋め込みたい場合は直接コピーしてください。デコード結果がバイナリ(画像、PDF、音声ファイル)の場合、画像であれば Base64-to-Image ツールに切り替え、その他の形式では生のバイト列を正しい拡張子のファイルに保存してください。JWT や SAML アサーションをデバッグしている場合は、JWT Decoder ツールが Base64 の手順を介さず直接構造化ペイロードを表示します。
使い方
Base64 文字列を貼り付ける
エンコードされたペイロードを入力欄に貼り付けます。空白や `data:...;base64,` プレフィックスはツールが自動的に除去するので、生の文字列でも完全な data URL でもそのまま貼り付けられます。
出力エンコーディングを選ぶ
デフォルトは UTF-8 で、デコードされるほとんどのペイロードをカバーします。元のデータが古い Web ページ、メールの件名、2010 年以前のデータベースダンプの場合は Latin-1 に切り替えてください。
結果をコピーまたはダウンロード
デコードしたテキストをクリップボードにコピーするか、.txt ファイルとしてダウンロードできます。変換はメモリ内で行われ、サーバーには一切送信されないため、数 MB 規模の Base64 も問題なく扱えます。
よくある質問
Base64 に data URL プレフィックスが含まれている場合は?
デコーダーはデコード前に `data:text/plain;base64,` のようなプレフィックスを除去します。完全な data URL を貼っても、生のペイロードを直接貼っても同じ結果になるので、手動で取り除く必要はありません。
エンコーディングの自動検出はどのように動作しますか?
デコーダーはまず UTF-8 として検証し(最も一般的なケースをカバー)、バイトが有効な UTF-8 でない場合は Latin-1 にフォールバックします。検出されたエンコーディングは出力の横に表示されるので、推測が外れた場合は手動で上書きできます。
デコード結果が文字化けするのはなぜですか?
文字化け(é が é と表示されるような)は、元データが UTF-8 でエンコードされているのにデコーダーが Latin-1 として処理した、あるいはその逆を意味します。ドロップダウンで出力エンコーディングを切り替えて再試行してください。
Base64URL(RFC 4648 §5)をデコードできますか?
はい、Base64URL では `+` が `-` に、`/` が `_` に置換され、パディングが省略されます。デコーダーは両方のバリアントを自動検出し、欠落したパディングを補ってから解析します。
サイズ制限はありますか?
ハードリミットはありません。変換はブラウザタブ内で実行されるため、実際の上限は利用可能なメモリに依存します。50 MB の Base64 文字列は約 37 MB のテキストにデコードされ、処理中は出力の約 4 倍のメモリを消費します。
制限事項
- バイナリファイルをきれいにデコードできないバイナリペイロード(画像、PDF、音声)はテキストではなくバイト列としてデコードされます。画像ペイロードには Base64-to-Image ツールを、その他のバイナリ形式では拡張子を一致させたファイルにバイトを保存してください。
- 巨大入力のストリーミング処理がないBase64 文字列全体はデコード中メモリに保持されます。数百 MB の入力はブラウザタブのメモリを枯渇させる可能性があります。非常に大きなペイロードには、macOS/Linux の `base64 -d` のような CLI ツールの方が高速です。
- 元のエンコーディングを復元できないエンコードされたテキストが元来 CP1252、Shift-JIS、その他のレガシーエンコーディングのものだった場合、デコーダーは妥当性に基づいて推測します。UTF-8 / Latin-1 以外のソースでは、ドロップダウンで明示的にエンコーディングを指定してください。
プラットフォーム別の注意点
- macOS
- macOS にはターミナル用の `base64 -D` が標準搭載されています。ターミナルを開きたくない場合や、CLI が提供しないエンコーディング自動検出が必要な場合は、このブラウザツールが適しています。
- Windows
- PowerShell の `[System.Convert]::FromBase64String()` が CLI での代替手段です。このブラウザツールは単発デコードや、Web UI から取得したペイロード(ファイルではない)のデコードに適しています。
- Linux
- GNU coreutils に `base64 -d` が付属しています。ブラウザツールはチャット画面、メール、ドキュメントページからコピーしたコンテンツに最適です。ターミナルに再入力したくない場面に向いています。
- Web
- 完全にクライアントサイドで動作します。ページ読み込み後はオフラインでも動作。ターミナルを開けない、ソフトウェアをインストールできない制限環境でのアドホックなデコードに便利です。