ブログ
日本語

Base64エンコード・デコード — オンライン変換

日本語などのUnicodeを正しく扱うBase64エンコーダー・デコーダー

ブラウザー内で処理・アップロード不要

出力

Base64とは

Base64は、英大文字・小文字、数字、+、/ の64文字でバイトを表す方式です。メールの添付ファイル、data URL、JWTトークンなど、テキストしか通せない経路でバイナリデータを運ぶために使われます。3バイトが4文字になるので、出力は入力より約33%長くなります。

使い方

  1. エンコード か デコード を選びます。
  2. テキストまたはBase64文字列を入力欄に貼り付けると、すぐに結果が表示されます。上にはテキストのバイト数とBase64の文字数も表示されます。
  3. 必要なら URLセーフ をオンにして、コピー を押します。

仕組み

  • エンコードの前にテキストを UTF-8 のバイトに変換します。ひらがな・漢字は1文字3バイト、ほとんどの絵文字は4バイトです。
  • デコード時は空白と改行を無視し、足りない = パディングは自動で補います。URLセーフ(-、_)と標準(+、/)のどちらの入力も受け付け、先頭の data:…;base64, は取り除きます。
  • デコードしたバイトが有効なUTF-8でない場合(画像など)は、文字化けしたテキストではなくエラーを表示します。

例

入力 Base64
a YQ==
こんにちは 44GT44KT44Gr44Gh44Gv
中文 5Lit5paH
👍 8J+RjQ==

よくある質問

日本語や絵文字で失敗するBase64ツールがあるのはなぜですか?

ブラウザー標準のbtoa()はLatin-1の文字しか受け付けないため、これを直接呼ぶツールは他の文字でエラーになります。このツールは先にテキストをUTF-8のバイトに変換するので、「日本語」は5pel5pys6Kqeになります。

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

+と/を-と_に置き換え、末尾の=パディングを省いたものです。結果をそのままURLやJWTトークンに入れられます。

入力はどこかに保存されますか?

いいえ。処理はすべてブラウザー内で行い、サーバーには何も送信しません。

ほしいツールはありますか?