Base64エンコード・デコード
テキストを貼り付け、変換方向と形式を選んで結果をコピーするだけ。Base64・Base64urlへの変換と復元に対応し、日本語や絵文字もUTF-8として正しく扱うので文字化けしません。URLエンコード(%形式)は3種類の方式から選べます。不正な入力は位置付きでお知らせします。
計算方法
Base64とは?わかりやすく解説
Base64は、任意のバイトデータを64種類の印字可能な文字(A–Z、a–z、0–9、+、/)だけで表す方式です。3バイトごとに4文字へ変換し、末尾でバイトが余ると=(パディング)で埋めます。結果は元より約3分の1長くなります。メールの添付ファイル、データURL(data:image/png;base64,…)、HTTPのBasic認証、JSONなど、テキストしか扱えない場所でバイナリデータを送るために使われます。
Base64の変換方法
- 入力欄にテキストまたはBase64の文字列を貼り付けます。
- 変換方向(エンコード/デコード)と形式(Base64、Base64url、3種類のURLエンコード)を選びます。
- 必要に応じて「パディング(=)を付ける」を切り替え、結果をコピーします。
Base64は暗号化ではありません。鍵がなくても誰でも元に戻せます。パスワードなどの保護にBase64を使ってはいけません。
Base64とBase64urlの違い
+と/はURLやファイル名で特別な意味を持ちます。そこでBase64url(RFC 4648 § 5)では-と_に置き換え、パディングも通常は省きます。JSON Web Token(JWT)はこの方式です。例:バイト列FB FFはBase64で+/8=、Base64urlで-_8になります。
日本語を文字化けさせないためのUTF-8
Base64が変換するのは文字ではなくバイトです。そのため本ツールはまずテキストをUTF-8に変換します。「あ」は3バイト、絵文字は4バイトになります。ブラウザ標準のbtoa()は日本語を扱えずエラーになります。デコード結果が文字化けする場合、多くは元データがShift_JISなど別の文字コードで作られています。UTF-8として読めないバイト列は16進数で表示します。
URLエンコードの3つの方式
- URLの一部(
encodeURIComponent):A–Z、a–z、0–9と- _ . ! ~ * ' ( )以外をすべてエンコードし、/ ? & = #も対象です。?q=…の検索語など、個々の値に使います。 - URL全体(
encodeURI):特別な意味を持つ文字(: / ? # & = +など)は残し、空白や日本語などだけをエンコードします。リンク全体をそのまま使いたいとき向けです。 - フォームデータ(
application/x-www-form-urlencoded):HTMLフォームの送信形式です。空白は+になり、! ' ( ) ~もエンコードされます。デコード時は+が空白に戻ります。
許可されていない文字は、UTF-8の1バイトごとに%と16進数2桁で表します(RFC 3986 § 2.1)。空白は%20、「あ」は%E3%81%82です。
変換はすべてブラウザ内で行われます。入力内容は送信も保存もされず、アドレスバーにも書き込まれません。
よくある質問
Base64をデコードするには?
「デコード」と「Base64」形式を選び、コードを貼り付けるとすぐに元のテキストが表示されます。コードに-や_が含まれている場合はBase64urlなので、その形式を選んでください。
Base64をデコードすると文字化けするのはなぜ?
元のテキストがUTF-8以外(Shift_JISやEUC-JPなど)でエンコードされていると、UTF-8として読んだときに文字化けします。本ツールはUTF-8として解釈し、テキストとして読めないデータは16進数で表示します。
Base64は暗号化ですか?
いいえ。Base64は同じデータを別の文字で書き表しただけで、鍵なしで元に戻せます。データの保護には本物の暗号化が、パスワードの保存にはパスワードハッシュが必要です。
Base64の末尾に=や==が付くのはなぜ?
Base64は3バイト単位で変換します。最後に1バイトまたは2バイト余ると、長さを4の倍数にするため==または=で埋めます。Base64urlでは通常このパディングを省きます。
画像をBase64に変換するとサイズはどれくらい増えますか?
元の約4/3です。3バイトが4文字になるため、300KBの画像はBase64で約400KBになります。MIMEの改行が入るとさらに少し増えます。
encodeURIとencodeURIComponentの違いは?
encodeURIはURL全体用で、/ ? & = #はそのまま残します。encodeURIComponentはこれらもエンコードするので、パラメータの値にはこちらを使います。そうしないと値の中の&でURLが分断されます。
出典・根拠
- RFC 4648: RFC 4648 – The Base16, Base32, and Base64 Data Encodings (§ 4 Base64, § 5 Base64url, § 3.2 Padding)
- RFC 3986: RFC 3986 – Uniform Resource Identifier (URI): Generic Syntax (§ 2.1 Percent-Encoding, § 2.2 Reserved Characters)
- WHATWG URL Standard – application/x-www-form-urlencoded
- MDN Web Docs – encodeURIComponent()
- MDN Web Docs – encodeURI()
- MDN Web Docs – Base64 (Unicode problem, TextEncoder)
更新日:
関連ツール
- ハッシュ生成:SHA-256・SHA-512・SHA-1・MD5テキストやファイルのSHA-256、SHA-512、SHA-1、MD5ハッシュを生成し、チェックサムを照合できます。ブラウザー内で計算、アップロード不要です。
- 正規表現チェックツールJavaScriptの正規表現をその場でチェックできるテストツール。一致した箇所を色付きで表示し、キャプチャグループを一覧に、パターンの意味を1つずつ日本語で解説します。
- JSON整形・構文チェック・圧縮ツールJSONを貼り付けるだけで整形・構文チェック。エラーの行と列を日本語で表示し、インデント整形、1行に圧縮、キーの並べ替えもブラウザ内で完結します。
- UUID生成ツール:UUID v4・v7の生成と検証UUIDをオンラインで生成できる無料ツールです。v4(ランダム)とv7(時刻順)を最大1,000個まで一括生成。UUIDのバージョンや日時も解析できます。
- パスワード生成ツール安全なランダムパスワードと覚えやすいパスフレーズを無料で生成。強度をビット数で表示し、生成はブラウザ内で完結。送信も保存もされません。
- CSS box-shadowジェネレーターCSSのbox-shadowをスライダーで作成。複数の影、オフセット、ぼかし、広がり、透明度付きの色、inset、プリセットに対応し、プレビューを見ながらCSSをコピーできます。