テキストを Base64 にエンコードする方法
- 入力欄にテキストを入力または貼り付けるか、ファイルを開きます。
- 文字コード(UTF-8 ならあらゆる言語と絵文字に対応)を選び、必要に応じて URL セーフ出力や 76 文字ごとの改行を有効にします。
- Base64 の結果をコピーするか、テキストファイルとしてダウンロードします。
Base64 エンコードの仕組み
エンコーダーはテキストをバイト列として受け取り、3 バイト(24 ビット)ずつのグループに分けて、それぞれを 64 種類の文字からなるアルファベットの 4 文字に変換します。最後のグループが 3 バイトに満たない場合は、パディングとして = 記号が付加されます。そのため、Base64 の出力は入力より約 33% 大きくなります。たとえば Man は TWFu になります。
主要なプログラミング言語での Base64 エンコード
- JavaScript:
btoa(String.fromCharCode(...new TextEncoder().encode(text))) - Python:
base64.b64encode(text.encode()).decode() - PHP:
base64_encode($text) - Java:
Base64.getEncoder().encodeToString(text.getBytes(UTF_8)) - Linux/macOS:
echo -n 'text' | base64
よくある質問
Base64 の結果が元のテキストより長くなるのはなぜですか?
Base64 は 3 バイトを 4 文字で表すため、出力は入力のおよそ 4/3 の大きさになり、さらにパディングが加わります。日本語のようなラテン文字以外の文字は UTF-8 で 2〜4 バイトを使うため、Base64 はさらに長くなります。
末尾の = 記号にはどんな意味がありますか?
パディング(埋め合わせ用の文字)です。= が 1 つなら最後のグループは 2 バイト、== の 2 つなら 1 バイトだったことを示します。URL セーフな Base64 では省略されることがよくあります。
絵文字や日本語のテキストもエンコードできますか?
はい。文字コードを UTF-8 のままにしておけば、どの言語や記号、絵文字も正しくエンコードされ、どのシステムでもデコードできます。
76 文字ごとの改行はどんなときに有効にすべきですか?
行の折り返しが必要なメール(MIME)や一部の PEM 証明書の場合だけです。API、JSON、URL、Data URI で使う場合はオフのままにしてください。