エンコードとエスケープ

Base64エンコードとUTF-8の厳密なデコード

文字集合とパディングを指定して、ひとつのテキストを変換します。

Base64エンコードツール

入力

結果

変換はこのブラウザー内で行い、入力は送信しません。

変換オプション

UTF-8専用です。デコードでは完全なパディングまたは省略を受け付け、非ゼロの未使用ビットは拒否します。文字集合とUTF-8のバイト列も厳密に検証します。

入力は1,000,000 UTF-16コード単位、出力は4,000,000コード単位まで。空入力も有効です。貼り付け時に改行形式が変わる場合があります。

テキストを入力するかサンプルを選んでください。空入力の結果は空文字列です。

確認後に最新の結果を入力へ移し、方向を切り替えます。結果が入力の上限を超える場合は使えません。

日本語を含む設定値をAPIに渡すときは、見た目の文字数と実際のバイト数を分けて考える必要があります。Base64エンコードでは、まず文章をUTF-8のバイト列にしてからASCII文字で表します。絵文字も同じ手順で扱えます。

受け取った値を調べる際は、文字列の形が正しいだけでは十分ではありません。このBase64変換ツールは末尾の構造と文字集合を確認したうえでUTF-8を検証し、壊れたバイト列を置換文字でごまかさずにエラーとして返します。

Base64エンコードで確認できること

日本語をバイト列として扱う

ひらがなや漢字はUTF-8では通常3バイトになります。Base64エンコードはそのバイト列を処理するので、1文字を1バイトとみなす変換とは結果が異なります。逆変換で元の文章まで確かめられます。

絵文字がバイトのブロックと符号列を通り、同じ絵文字に戻る様子。

読める文字に見えても検証する

コピー中に末尾が欠けたり、別形式の記号が混じったりすると、見た目だけでは判断できません。文字集合・パディング・未使用ビットを検証し、その後でUTF-8として成立するかを確認します。

正しい符号列は検証を通過し、壊れた符号列は赤い拒否マークで止まる様子。

貼り付け先の仕様に合わせる

01

URL向けの記号と=を別々に決める

標準は+と/、URLセーフBase64は-と_を使います。パディングは独立した設定です。デコード時に形式を自動判定しないため、入力側の約束に合わせて文字集合を選びます。

02

自動変換と手動実行を使い分ける

編集を止めてから350ミリ秒後に更新します。自動変換を切ると変換ボタンが表示され、Ctrl/Cmd+Enterでも実行できます。入力や設定を変えた直後は古い結果をコピーできません。

03

置き換え前のプレビューを見る

サンプル・クリア・逆変換は、置き換える内容と長さを先に表示します。適用後は一度元に戻せます。結果の表示は先頭20,000コード単位までですが、コピーと保存は全体を対象にします。

文字とバイトの違いがわかる機能

Unicodeを正規化せず変換

結合文字の並びを勝手に変えません。UTF-8を介して日本語や絵文字を変換し、先頭のU+FEFFもデータとして保持します。エンコード時に新しいBOMは追加しません。

標準とURL形式を混ぜない

Base64URLでは-と_を使い、標準の+と/は拒否します。標準モードでは逆の記号がエラーになります。両形式とも、エンコード時のパディングを独立して選べます。

文字の問題は元の位置を示す

不正な文字、パディング、単独サロゲートには行番号とUTF-16単位の列を付けます。デコード後のUTF-8エラーには、根拠のない入力位置を表示しません。

折り返された値も扱える

Base64デコードで無視できるのはスペース、タブ、CR、LFだけです。取り除いた数を結果に表示します。無視を無効にすると、これらも不正文字として検出できます。

受け付ける値と対象外の形式

ファイルではなくテキストを入力
画像・PDFの読み込み、URLの取得、Data URIやPEMの解析はありません。バイナリ保存や文字コードの自動判定にも対応しません。ヘッダーを自動で削除する機能もありません。
途中までのパディングは不可
Zg==とZgはどちらもfになりますが、Zg=は失敗します。途中の=、多すぎる=、データ長が4で割って余り1になる値も無効です。パディング設定はエンコードだけに適用します。
末尾の未使用ビットも確認
Zh==をfにする寛容な実装もありますが、ここでは拒否します。これは本ツールの厳密な正規形式ポリシーです。RFC 4648がすべてのデコーダーに拒否を義務付けているわけではありません。
不正な文字列を修復しない
/w==はBase64として成立してもUTF-8ではないため失敗します。単独のUTF-16サロゲートもエンコードできません。デコードで得た先頭のBOMは複数あってもそのまま保持します。
空白の無視は4種類のみ
対象はSP、TAB、CR、LFです。NBSP、改ページ、垂直タブ、符号列に貼り付けたBOMは拒否します。元のテキストの空白や改行は内容として扱います。エンジンはCRLFを保持しますが、貼り付け時に改行が変わる場合があります。
上限を超えた値は途中で切らない
入力は空白除去前で1,000,000 UTF-16コード単位、出力は4,000,000単位まで。空文字列は有効です。MIME折り返し、行別バッチ処理、暗号化、JWT検証、下書き保存はありません。

Base64エンコードのよくある質問

日本語も変換できますか?

はい。有効なUnicodeテキストなら、ひらがな・漢字・絵文字をUTF-8のバイト列にしてからBase64エンコードできます。文字数ではなくバイト数を変換するため、日本語は同じ文字数の英語より結果が長くなることがあります。

URLセーフ形式と標準形式は何が違いますか?

最後の2種類の記号が異なり、標準の+と/が-と_になります。等号を省略するかは別の仕様です。このツールでは2つを独立して設定でき、デコードでは選択した文字集合だけを受け付けます。

パディングなしでも使えますか?

エンコード時に末尾の=を付けない設定を選べます。デコードは必要な=がすべてある場合か、すべて省略された場合に対応します。受信側が=を必須としているなら、送信時は残してください。

画像やファイルもエンコードできますか?

このページはテキスト専用です。画像やPDFを入力したり、Base64からバイナリファイルを復元したりはできません。文字として貼り付ける方法では元のファイルのバイト列を保証できないため、ファイル専用ツールを使ってください。

Base64変換は安全ですか?

Base64は暗号化ではなく、誰でも逆変換できます。変換しただけでは秘密の保持や改ざん検出はできません。値をどこへ渡すかに応じて、別途暗号化や署名など必要な仕組みを選んでください。

説明のない変換エラーがありましたか?

Base64エンコードに戻る

短い文章でBase64エンコードを試し、記号とパディングを確認したら、逆変換でUTF-8の内容も確かめてください。