Base64 変換ツール

Base64テキストを瞬時にエンコード・デコード。UTF-8対応、すべてブラウザ内で完結。

0 文字
0 文字
方向を自動判定:有効なBase64 → テキスト、それ以外は テキスト → Base64。

Base64 変換ツールについて

このBase64変換ツールはブラウザ内で完結します。左にテキストを入力してエンコードを押せば右にBase64文字列が表示され、左にBase64文字列を貼り付けてデコードを押せば元のテキストが復元されます。サーバーへの送信は一切なく、Unicode(UTF-8)テキ全般に正しく対応します——絵文字、中国語、日本語など非ASCII文字も含みます。

Base64とは?

Base64は、バイナリデータを印字可能なASCII文字列に変換するバイナリ→テキスト符号化方式です。A–Za–z0–9+/の64文字アルファベットを使用し、=でパディングします。入力3バイトごとに4つのBase64文字になるため、出力は常にテキスト専用システムを通過できる安全な文字列になります。

Base64が使われる場面

  • データURL —— 小さな画像・フォント・ファイルを data:image/png;base64,... として HTML/CSS/JS に直接埋め込む。
  • メール添付(MIME) —— バイナリファイルをBase64符号化し、テキスト専用のSMTPで送信。
  • JWTトークン —— JSON Web TokenのヘッダーとペイロードはBase64URL文字列で符号化。
  • JSON / XMLへの画像埋め込み —— プロトコルがテキストのみを扱う場合、Base64を使ってバイナリをインラインで送信。
  • Basic認証ヘッダー —— HTTP Authorization: Basic <base64(user:pass)>
  • ソースマップ・証明書 —— 鍵やソース内容はよくBase64形式で保存。

UTF-8対応が重要な理由

ブラウザ組み込みの btoa()atob() はLatin-1文字しか処理できません。中国語、日本語、絵文字、コードポイント255以上の文字をそのまま btoa() に渡すと InvalidCharacterError が発生します。本ツールは標準的なUTF-8ラウンドトリップパターンでこの制限を回避します:

utf8ToBase64(str) = btoa(unescape(encodeURIComponent(str)))
base64ToUtf8(b64) = decodeURIComponent(escape(atob(b64)))

これにより「こんにちは」は 44GT44KT44Gr44Gh44Gv に符号化され、元の「こんにちは」に劣化なく復元されます——現代のBase64ツールとして当然の挙動です。

使い方

  1. 左の入力フィールドにテキストまたはBase64文字列を入力・貼り付けします。
  2. エンコード(テキスト → Base64)またはデコード(Base64 → テキスト)をクリック。結果が右に表示されます。
  3. スワップを使うと出力を入力に戻せるため、どちらの方向でも継続して作業できます。
  4. 出力をコピーで結果をクリップボードへ、クリアで両方のフィールドをリセット。
  5. ライブモードをオンにすると入力時に自動変換——方向はツールが自動判定します。

よくある質問

データはアップロードされますか? いいえ。すべてのエンコード・デコードはJavaScriptでローカルブラウザ内で行われます。ページ読み込み後はオフラインでも利用可能です。

中国語・日本語・絵文字に対応しますか? はい。UTF-8セーフな符号化パターンを使用するため、任意のUnicodeテキストを破損なく処理できます。

デコード結果が文字化けするのはなぜ? 有効なBase64ではない入力をデコードしようとしたか、元データが別方式(例えばBase64URLは + / の代わりに - _ を使用)で符号化されている可能性があります。入力長が4の倍数で、有効なBase64文字のみが含まれているか確認してください。

長さ制限はありますか? 唯一の制限はブラウザの使用可能メモリです。数MBの文字列も処理できますが、非常に大きな入力は少し時間がかかり、ページの動作が重くなることがあります。

Base64とBase64URLの違いは? Base64URLはURLセーフなバリアントで、+-/_ に置き換え、= パディングを省略することが多いです。JWTやURLクエリパラメータで使われます。