本文へスキップ

Base64エンコーダー・デコーダーベータ

テキストやファイルをブラウザ内でBase64に変換・復元します。日本語などのUnicodeも安全に処理し、URLセーフオプションとファイルのダウンロードに対応します。

方向
入力の種類
0文字 · 0行
オンにすると + と / の代わりに - と _ を使い、末尾の = パディングを付けません。URLやファイル名に使う場合はオンにしてください。

0文字 · 0行

ファイルはこの端末の中だけで処理され、サーバーには送信されません。

使い方

エンコードタブでテキストを入力すると、その下にBase64文字列が表示されます。デコードタブでBase64文字列や data: URLを貼り付けると、元のテキストに戻ります。ボタンを押す必要はなく、入力すると同時に結果が更新され、隣のコピーボタンでそのままコピーできます。

btoaではなくこのツールを使う理由

ブラウザ標準の btoa 関数は、ラテン文字(コードポイント0~255)の範囲外の文字があるとエラーになります。そのため日本語や絵文字が混ざった文字列を btoa でそのままエンコードすると、失敗するか文字化けした結果になります。このツールはまず TextEncoder で文字列をUTF-8のバイト列に変換し、そのバイト列をBase64エンコードするため、どの言語の文字でも安全に扱えます。デコードも同様に TextDecoder を使って元の文字に戻します。

URLセーフなBase64

標準のBase64は +、/、= の3文字を使いますが、これらはURLのクエリ文字列やファイルシステムの中で特別な意味を持つことがあり、そのまま使うと問題が起きる場合があります。URLセーフオプションをオンにすると + → -、/ → _ に置き換え、末尾の = パディングは付けません。JWT(JSON Web Token)やURLのクエリパラメータに値を入れる際によく使われる方式です。デコードするときも、エンコードで使ったのと同じオプションを選ばないと文字が正しく解釈されません。

ファイルをBase64に、Base64を再びファイルに

エンコードタブで入力の種類を「ファイル」に切り替えると、ファイルをドラッグ&ドロップまたは選択できます(最大10MB)。変換結果は data:image/png;base64,iVBORw0KG... のようにファイル形式の情報を含んだdata URLになり、この文字列をそのままimgタグやCSSの背景に使えます。逆にデコードタブにこうしたdata URLや純粋なBase64文字列を貼り付ければ、ダウンロードボタンで元のファイルとして保存し直せます。ファイル形式の情報がない場合は拡張子 .bin で保存されます。

よくあるエラーと対処法

Base64として使えない文字(空白や改行は自動的に無視されます)が含まれていると、どの文字が問題かを表示します。長さが4の倍数でない、または = パディングの位置が誤っている場合はパディングエラーが表示されます。標準のBase64をURLセーフでデコードしようとする(またはその逆)場合もエラーになるため、エンコードに使ったのと同じオプションでデコードしてください。

プライバシー

入力したテキストやファイルはこのブラウザの中だけで処理され、サーバーには送信されません。ページを閉じるとすべての内容が消えます。

参考資料

よくある質問

日本語や絵文字をエンコードしても文字化けしませんか?

文字化けしません。このツールはまず文字をUTF-8のバイト列に変換してから(TextEncoder/TextDecoderを使用)Base64エンコードします。JavaScript標準のbtoa関数はラテン文字しか扱えず、日本語や絵文字が含まれるとエラーになりますが、このツールにはその問題がありません。

URLセーフなBase64はどんなときに使いますか?

通常のBase64は +、/、= の3文字を使いますが、これらはURLやファイル名の中で特別な意味を持つことがあります。URLセーフオプションをオンにすると + を -、/ を _ に置き換え、末尾の = パディングも付けなくなるため、アドレスバーやクエリ文字列、ファイル名にそのまま使えます。

デコード時に「正しいUTF-8ではありません」と表示されるのはなぜですか?

Base64の元データが文章ではなく画像やPDFなどのバイナリファイルの場合、そのバイト列を文字として解釈できないためこのエラーが表示されます。この場合は「16進数で表示」でバイト値を直接確認するか、ダウンロードボタンで元のファイルとして復元できます。

ファイルをBase64に変換すると、どんな形式になりますか?

ファイルをドロップすると、data:<ファイル形式>;base64,<データ> という形式のdata URLに変換されます。この文字列はHTMLのimgタグやCSSにファイルを直接埋め込む際によく使われ、そのままコピーして利用できます。