本文へスキップ
kitto works
ツール一覧

Base64変換|テキストとBase64を相互変換

テキストをBase64にエンコード、またはBase64をテキストにデコードします。絵文字や日本語などのUTF-8マルチバイト文字も正しく変換でき、URLセーフ版(JWTやURLパラメータ向け)にも対応。入力した内容はブラウザの中だけで処理され、外部には送信されません。

変換方向

入力した内容はブラウザの中だけで処理され、どこにも送信されません。

使い方

  1. 「変換方向」でエンコード(テキスト→Base64)かデコード(Base64→テキスト)かを選びます。
  2. 入力欄にテキストまたはBase64文字列を貼り付けます。変換結果はボタン操作なしでその場に表示されます。
  3. URLやJWTに埋め込む場合は「URLセーフ版を使う」をオンにし、結果を「出力をコピー」でコピーします。

計算・変換の根拠

エンコードの仕組み

入力したテキストをUTF-8のバイト列に変換したうえで、RFC 4648で定義された標準Base64アルファベット(A–Za–z0–9+/)を使って符号化します。バイト数が3の倍数でない場合は=でパディングします。

デコードの仕組み

Base64文字列をバイト列に復号し、UTF-8として解釈してテキストに戻します。コピー時に混入しやすい空白・改行は自動的に無視します。標準版(+ /)とURLセーフ版(- _)のどちらの文字が使われていても、混在していなければ自動的に判別してデコードします。

URLセーフ版について

URLセーフ版は、標準のBase64で使われる+/をそれぞれ-_に置き換え、末尾のパディング(=)を省略したものです(RFC 4648 §5)。URLのクエリパラメータやJWT(JSON Web Token)など、+/がそのままでは使えない場所に埋め込む際に使われます。

対応する文字の範囲

絵文字を含むすべてのUnicode文字(UTF-8で表現できる範囲)を正しくエンコード・デコードできます。改行やタブなどの制御文字もそのまま往復します。

上限について

入力は500万文字までに対応しています。それを超える入力はエラーとして扱われ、変換は行われません。

エラーになる場合

デコード時に、Base64のアルファベットに含まれない文字が混ざっている場合や、復号結果が正しいUTF-8のバイト列にならない場合はエラーになります。コピー元のBase64文字列が途中で切れていないか確認してください。

よくある質問

入力した内容はサーバーに送信されますか?

送信されません。エンコード・デコードの処理はすべてお使いのブラウザの中だけで行われ、サーバーへの通信は発生しません。

日本語や絵文字も正しく変換できますか?

はい。入力はUTF-8として扱われるため、日本語・絵文字を含むほとんどのUnicode文字を正しくエンコード・デコードできます。

URLセーフ版のBase64とは何ですか?

標準のBase64で使われる「+」と「/」をそれぞれ「-」と「_」に置き換え、末尾の「=」パディングを省略した形式です。URLのパラメータやJWT(JSON Web Token)など、「+」や「/」がそのまま使えない場所に埋め込みたいときに使います。「URLセーフ版を使う」をオンにすると、この形式で出力・入力できます。

デコードでエラーになるのはどんなときですか?

Base64のアルファベットに含まれない文字が混ざっている場合、文字列の長さが正しいBase64として成立しない場合、または復号した結果が正しいUTF-8のバイト列にならない場合にエラーになります。コピーする際に文字列の一部が欠けていないか確認してください。

画像やファイルもBase64に変換できますか?

現在のバージョンはテキストのみに対応しています。画像・ファイルのBase64変換(Data URI化)は今後の対応候補としています。