Base64 のエンコードとデコード

文章やファイルを Base64 にし、または Base64 を文字に戻します。文字コードを選べます。初期値は UTF-8 です。Hex を選ぶと十六進バイトと相互に変換できます。計算はブラウザ内で完結します。

Base64 は暗号化ではありません

JSON や HTML、メールのように「見える文字しか通れない」場所へ、任意のバイト列を載せるための表記です。誰でも元に戻せます。秘密を隠す用途には使いません。

文字コードで文章がどのバイトになるかを決めます。初期値は UTF-8 で、漢字やかな、絵文字はこれでバイトになります。相手が Shift_JIS や UTF-16 ならそこで切り替えてください。Hex は欄の中身を十六進バイトとして扱い、Base64 と相互に変換できます。ファイルは生のバイトのままで文字コードは使わず、PNG や PDF をテキストとして壊しません。送信はしません。

  • 標準は + と /、余りは =。MIME や多くの標準ライブラリがこれです。
  • URL セーフは - と _ で、埋め字を外します。JWT の各部分はこちらです。
  • 76 文字で折り返すのはメールの行幅です。JSON に貼るときは折り返しを切ってください。
  • data URIは img や CSS の url() 用です。画像はファイル名ではなくファイル本体を渡します。

操作

  1. 文章を貼るか、ファイルを選びます。ファイルを選ぶと、テキスト欄ではなくバイト列を符号化します。
  2. エンコードかデコードを選びます。デコードは標準と URL セーフの両方を受け、空白と改行は無視します。
  3. data URI の接頭辞は、次に HTML か CSS へ入れるときだけ付けます。
  4. 失敗するときは、文字列が途中で切れているか、そもそも Base64 ではありません。

文字コードが先にバイトを決めます。「中文」は UTF-8 で 6 バイト、Shift_JIS では別のバイト列です。別の道具と結果が違うときは、同じ文字コードに合わせるか、Hex でバイトを見てください。バイトを見たいときは 文字列からバイト、パーセント符号化は URL エンコード です。

よくある質問

戻したら文字化けする

そのバイト列は、選んだ文字コードの文章ではありません。Shift_JIS や UTF-16 を試すか、Hex でバイトを見てください。画像や圧縮ファイルをテキスト欄で読むと、そう見えます。ファイルは生のバイトで、文字コードは使いません。

末尾の = は必須か

こちらは欠けていてもデコードします。相手が厳密なら、URL セーフを切って = を残してください。