Base64フォーマット

Messy Base64 入力
0文字

オンラインでBase64文字列をフォーマット。カスタム文字幅(64/76/80/100文字)とインデント(0/2/4スペース)による行分け表示に対応し、長い文字列の読解、スクリーンショット比較、ドキュメントレイアウトに最適です。表示形式のみを調整し、元のBase64エンコードデータは変更しません。

関連おすすめ

Base64フォーマットとは?

Base64フォーマットとは、長いBase64文字列を表示上で指定した文字幅(64/76/80/100など)で複数行に分割し、0/2/4スペースのインデントに対応した表示形式のことです。フォーマット結果は視覚的に読みやすく、スクリーンショット・印刷・ドキュメントレイアウトに適していますが、**元のバイト内容は一切変更しません**——すべての改行とインデントを除去すれば元の単一行Base64に復元できます。

**なぜフォーマットが必要か?** RFC 4648の標準Base64には強制改行の規定はありませんが、実際の利用では以下の問題があります:①長いBase64文字列がチケットシステム・チャットツール・Markdownドキュメントで画面からはみ出して横スクロールが発生する;②MIMEプロトコル(RFC 2045)ではメール添付ファイル用に76文字ごとの折返しが規定されている;③コードレビューでは複数行表示の方が異常文字を見つけやすい;④ドキュメントのスクリーンショットでは整列された表示が美しい。

**主な利用シーン:** ①技術ドキュメントのレイアウト:Markdown/Confluence/Notionに長いBase64を埋め込む際;②スクリーンショット比較:PR・バグ報告のスクリーンショットでチーム全体がBase64文字列を確認しやすくする;③目視レビュー:コードレビューで不正文字(混入した改行・スペースなど)を素早く特定;④メール添付ファイル:MIME標準の76文字折返しでSMTP送信に対応;⑤大画面ログ表示:監視モニターで複数行表示して確認しやすくする。

**MIME Base64との違い:** MIME Base64(RFC 2045)は76文字ごとの折返しを固定で行い、プロトコルレベルで要求される形式です。本ツールのフォーマットはより柔軟で、64/76/80/100文字の複数の幅と0/2/4スペースのインデントに対応し、さまざまなドキュメントシーンに適合します。76文字幅を選択すればMIME折返しを再現できます。

**フォーマットの安全性:** 本ツールは表示レベルで改行とインデント文字を挿入するだけで、**元のBase64のバイト内容は一切変更しません**。フォーマット結果からすべての空白文字を除去すれば、完全に同一の元のBase64文字列に復元できます。デコード時、ほとんどのBase64デコーダは空白文字を自動的に無視するため、フォーマット結果をそのままデコードに使用できます。

ユースケース

  • 超長Base64文字列をカスタム幅で行分けして読みやすく・スクリーンショットしやすくする
  • 技術ドキュメント・チケット記録・メール表示用にBase64をフォーマット
  • 印刷・アーカイブ時のBase64レイアウト最適化
  • 分割・結合ツールと組み合わせてBase64の構造調整を行う
  • MIME標準(76文字)でBase64を折返してメール添付ファイルとして使用
  • コードレビュー時に複数行表示して異常文字を見つけやすくする
  • MarkdownにBase64を埋め込む際に4スペースインデントでコードスタイルを維持
  • 大画面ログ表示:監視システムで長いBase64ペイロードを複数行表示

使い方

  1. フォーマットするBase64文字列を貼り付ける(改行あり・なしどちらでも可)
  2. 1行あたりの文字幅を選択:64/76/80/100
  3. インデントを選択:0/2/4スペース
  4. 指定した幅とインデントでツールがリアルタイムにフォーマット表示
  5. フォーマット結果をコピーしてドキュメントに使用、または復元ボタンで改行を除去

特徴

  • カスタム文字幅:64/76/80/100文字/行に対応し、さまざまなレイアウト要件に柔軟に対応
  • 設定可能なインデント:0/2/4スペースのインデントに対応し、コードブロックやMarkdownでの整列に便利
  • 表示の最適化のみ:表示方式を調整するだけで、元のBase64エンコードデータは変更しない
  • リアルタイムフォーマット:200msのデバウンス処理で、入力と同時にフォーマット、遅延なし
  • ワンクリックで復元:すべての改行とインデントを除去し、単一行Base64に戻す
  • 文字数・行数カウント:入力文字数・出力の総行数をリアルタイムで表示
  • ワンクリックコピー:フォーマット結果をクリップボードに直接コピーしてドキュメントやチケットに利用可能
  • ブラウザローカル処理:すべてのフォーマットはブラウザ内で完結し、サーバーを経由しない

コード例

JavaScript:Base64フォーマットを手動実装(仕組みの理解)

javascript

Base64フォーマットの基本ロジック——文字幅で分割して改行文字を挿入する方法を理解します。

// Base64フォーマット関数(本ツールと同じロジック)
function formatBase64(input, lineLength = 76, indent = 0) {
  // 1. すべての空白文字を除去
  const clean = input.replace(/\s/g, '');
  if (!clean) return '';

  // 2. 指定幅で分割
  const lines = [];
  for (let i = 0; i < clean.length; i += lineLength) {
    const line = clean.slice(i, i + lineLength);
    lines.push(' '.repeat(indent) + line);
  }

  // 3. 改行文字で連結
  return lines.join('\n');
}

// 使用例
const b64 = 'a'.repeat(200);
console.log(formatBase64(b64, 76, 0));
// 出力:76文字ごとに改行されたBase64

// フォーマット解除(デコードや送信用)
function unformatBase64(input) {
  return input.replace(/\s/g, '');
}

console.log(unformatBase64(formatBase64(b64, 76, 0)).length); // 200

Python:Base64フォーマット+MIME折返し

python

Pythonで76文字折返し(MIME標準)とインデント指定を実装します。

import textwrap

def format_base64(b64_str: str, width: int = 76, indent: int = 0) -> str:
    """Base64文字列を複数行にフォーマット"""
    # すべての空白を除去
    clean = ''.join(b64_str.split())
    if not clean:
        return ''

    # textwrapで指定幅に分割
    lines = textwrap.wrap(clean, width=width)

    # インデントを追加
    if indent > 0:
        lines = [' ' * indent + line for line in lines]

    return '\n'.join(lines)


# 使用例
b64 = 'aGVsbG8gd29ybGQ=' * 10
print(format_base64(b64, 76, 0))

# MIME Base64(RFC 2045)を再現
mime_format = format_base64(b64, 76)
print(f'MIME Base64の行数: {len(mime_format.splitlines())}')

# 単一行に戻す
single_line = b64.replace('\n', '').replace(' ', '')
print(f'単一行の長さ: {len(single_line)}')

コマンドライン:foldコマンド+MIME Base64折返し

bash

Linux/macOS標準のfoldコマンドでコマンドラインから素早くBase64フォーマットを実現します。

# 1. Base64を入力 → 76文字で折返し(MIME標準)
echo "aGVsbG8gd29ybGQ=" | base64 | base64 | fold -w 76

# 2. 長いBase64ファイルをフォーマット → 新しいファイルに出力
fold -w 76 encoded.txt > formatted.txt

# 3. 64文字で折返し(コンパクト表示)
fold -w 64 encoded.txt > compact.txt

# 4. すべての改行を除去(フォーマット解除)
tr -d '\n' < formatted.txt > single-line.txt

# 5. 確認:Base64の文字数と行数
wc -c encoded.txt | awk '{print "文字数:", $1}'
wc -l formatted.txt | awk '{print "行数:", $1}'

# 6. opensslと組み合わせてBase64エンコード+フォーマット
echo "Hello 世界" | openssl base64 -A | fold -w 76 > hello.b64.txt
cat hello.b64.txt

よくある質問

フォーマットはBase64の実際の内容を変更しますか?

いいえ。フォーマットは表示レベルで改行文字とインデントスペースを挿入するだけで、エンコード自体は変更しません。フォーマット後の内容からすべての空白文字を除去すれば元の単一行Base64に復元できます。すべてのBase64デコーダ(ブラウザ標準のatob・Node.js Buffer・Python base64)は空白文字を自動的に無視するため、フォーマット結果をそのままデコードに使用できます。

Base64フォーマットとMIME Base64の違いは何ですか?

MIME Base64はRFC 2045の76文字幅での折返しを厳格に行い、メール添付ファイル送信用の標準です。本ツールのフォーマットはより柔軟で、64/76/80/100文字幅と0/2/4スペースのインデントをカスタマイズでき、ドキュメント・スクリーンショットなどさまざまな表示ニーズに適しています。76文字幅を選択すればMIME折返しを再現できます。

ログ確認やチケット記録に適していますか?

非常に適しています。長いBase64文字列はチケットシステム(Jira/Zendesk)・チャットツール(Slack/Teams)・Markdownドキュメントで画面からはみ出して横スクロールが発生しがちです。フォーマット後は複数行で表示されて読みやすく、チケットの添付ファイルやチャット画面にそのまま貼り付けられます。

フォーマット後はそのままデコードに使えますか?

はい、使えます。主要なBase64デコーダはすべて改行とスペースを自動的に無視します。もし問題が発生した場合(古いバージョンのOpenSSLなど)は、「復元」ボタンをクリックして改行を除去してからデコードしてください。

なぜ64/76/80/100と複数の文字幅があるのですか?

64文字はコンパクトなドキュメント(CLIターミナル・Markdownテーブルなど)に適しています;76文字はMIMEメール標準;80文字は伝統的なターミナル幅;100文字はワイドスクリーンエディタやモダンなドキュメントに適しています。それぞれの幅に対応する最適な利用シーンがあります。

インデントは何のためにありますか?

インデント(0/2/4スペース)はBase64をコードブロックやMarkdown内で整列させるためのものです:0スペースはプレーンテキストに、2スペースはJS/Pythonコードスタイルに、4スペースはMarkdownネストコードブロックに適しています。

フォーマットするとBase64の文字数は増えますか?

1〜3%程度増加します(改行文字+インデントスペース分)が、デコード結果には影響しません。送信サイズに敏感な場合(URLパラメータなど)は、「復元」機能で単一行に戻してから使用することをお勧めします。

UTF-8/日本語に対応していますか?

本ツールは文字セットを直接処理しません——Base64文字列自体をフォーマットするだけです。Base64に日本語が含まれている場合(UTF-8でエンコード後にBase64エンコードされたものなど)でも、フォーマットによってエンコードの正しさに影響はありません。

大きなファイルのフォーマットに対応していますか?

対応しています。ツールはリアルタイムでフォーマットを行い、ブラウザは1MB以内のBase64文字列であれば問題なく処理できます。10MBを超えると画面がカクつく可能性があるため、分割してフォーマットすることをお勧めします。

フォーマット後にサイズが大きくなった場合、圧縮できますか?

フォーマットで追加されるのは改行とインデントだけのため、圧縮アルゴリズムとの相性は良好です。gzip/Brotliで圧縮するか、Base64 Statsツールで具体的な増分を確認できます。

トラブルシューティング

フォーマット後に一部のBase64文字が失われる

元のBase64に不正文字が含まれている可能性があります(改行文字が正しく処理されていないなど)。まずBase64 Cleanツールでクリーニングしてからフォーマットしてください。

フォーマット結果が元のバイトと一致しない

そのようなことは起こりえません——フォーマットは空白文字を挿入するだけで、バイト内容は変更しません。不一致が見つかった場合は、元のBase64がすでに誤って処理されています(重複フォーマットによる空白の重複挿入など)。

長い文字列のフォーマット後に画面がカクつく

10MBを超えるBase64文字列はブラウザの動作が重くなる可能性があります。以下をお試しください:①分割して処理する;②事前にbase64-cleanで余分な空白を除去する;③幅を小さくして(64文字など)各行のレンダリング負荷を減らす。

用語集

Base64フォーマット
Base64文字列を表示上で指定幅ごとに複数行に分割する処理。視覚的な見た目にのみ影響し、エンコード内容自体は変更しない。
MIME Base64
RFC 2045で規定された76文字ごとに折返すBase64の変種。主に電子メールの添付ファイル送信用。
文字幅(line length)
1行に表示するBase64文字数。一般的な値:64(コンパクト)、76(MIME標準)、80(標準印刷)、100(ワイドスクリーン)。
インデント(indent)
各行の先頭に付けるスペース数。一般的な値:0(インデントなし)、2(コードスタイル)、4(Markdownコードブロック)。
空白文字(whitespace)
Base64文字列に混入する可能性のあるスペース・タブ・改行文字など。フォーマット時はこれらを除去してから指定幅で再挿入する。
フォーマット解除(unformat)
フォーマット済み(複数行+インデント)のBase64を空白を含まない単一行形式に戻す処理。デコードや送信用。

4種類の文字幅の比較表

文字幅ごとに適した表示シーンが異なるため、用途に応じて選択してください。

文字幅代表的なシーン対応規格
64文字CLIターミナル、Markdownテーブルコンパクト表示小画面/高密度
76文字メール添付ファイル送信RFC 2045 MIMEメール/SMTP
80文字伝統的なターミナル印刷伝統的なUnixターミナルドキュメント印刷
100文字モダンエディタ/ワイドスクリーンモダンUI規格IDE/ドキュメント

3種類のインデントスタイルの比較表

インデントスタイルはチームやプロジェクトのコード規約に合わせて選択してください。

インデントコードスタイル例(Base64先頭行)
0スペースインデントなし(プレーンテキスト)QUJD...
2スペースJS/Python規約 QUJD...
4スペースMarkdownネスト/Java規約 QUJD...

Authoritative References