RFC 4648 · エンコーダー&デコーダー
なんでも Base64 エンコード。アップロードは一切なし。
テキスト・ファイル・画像に対応した無料のオンライン Base64 エンコーダー・デコーダーです。処理はすべてお使いのブラウザのタブ内で JavaScript が行います。何もアップロードされないので、オフラインでも動作し、サイズ制限もありません。
- 入力と同時にエンコード
- テキスト・ファイル・画像
- URL セーフ&MIME モード
- 広告なし・登録不要
ここにファイルや画像をドロップ
または 。アップロードは行われず、ファイルがお使いのコンピューターから出ることはありません。
オプション
そのまま貼り付け可能
Ctrl+Enter エンコード Ctrl+Shift+C 結果をコピー Ctrl+Shift+X 方向を反転
Base64 エンコードをオンラインで — 無料・即時・プライベート
このオンライン Base64 エンコードツールは、サーバーではなくお使いのブラウザで処理を行います。上の入力欄に入力すると、そのまま Base64 が表示されます。ボタンもページの再読み込みもアップロードも不要です。デコードに切り替えれば逆変換ができ、ファイル・画像タブを開けば画像を Base64 エンコードして、HTML や CSS にそのまま貼れるデータ URI を取得できます。
標準仕様の機能はすべてそろっています。標準アルファベット、URL セーフ Base64(RFC 4648 §5)、MIME の 76 文字改行、LF と CRLF の改行コード、行ごとのエンコード、そして UTF-8 から ISO-8859-1、UTF-16 までの 6 種類の文字コードです。ブラウザではなくコードで Base64 エンコードしたい場合は、下のコード例で Python、JavaScript、Linux と macOS、PowerShell、PHP、Java、Go、C#、Ruby を紹介しています。
最終更新日
選ばれる理由
違いは「どこでエンコードするか」。
多くの Base64 ツールは、ファイルをサーバーに送信してそこでエンコードし、ダウンロードリンクを返します。つまり、ブラウザならマイクロ秒で終わる変換のために、データがあなたのマシンの外に出てしまいます。このツールはそのような通信を一切行いません。
| 項目 | freebase64encode.com | 一般的なオンラインエンコーダー |
|---|---|---|
| データの処理場所 | 常にお使いのブラウザのタブ内 | サーバーにアップロード |
| ファイルサイズの上限 | デバイスのメモリのみ | 通常は 100 MB まで |
| サーバーへのファイル保存 | なし(送信先が存在しない) | 一時保存後に削除 |
| オフラインでの動作 | ページ読み込み後は動作 | 不可 |
| 入力中のリアルタイム変換 | 標準でオン | 任意設定またはボタン操作 |
| エンコードとデコード | 1 ページでワンクリック切り替え | 別々のページ |
| 画像 → データ URI + HTML/CSS/Markdown | プレビュー付きで内蔵 | なし |
| 9 言語のコード例 | 同じページに掲載 | なし |
| サイズ増加の表示 | バイト数と % をリアルタイム表示 | 表示なし |
| 広告と Cookie バナー | なし(追跡 Cookie もなし) | たいていあり |
コードで実行
Python、JavaScript、Bash、PowerShell ほか 5 言語で Base64 エンコード。
よく検索される言語で、エンコードとデコードのコードをそのままコピーして使えます。誰もがつまずきがちな落とし穴も、それぞれに書き添えました。
Python で Base64 エンコード
Python は標準ライブラリに Base64 を備えています。つまずきやすいのは、b64encode が str ではなく bytes を受け取る点です。テキストはまず UTF-8 にエンコードしてください。
import base64
# Encode a string ─ note the .encode("utf-8"): b64encode takes bytes, not str
text = "Man is distinguished"
encoded = base64.b64encode(text.encode("utf-8")).decode("ascii")
print(encoded) # TWFuIGlzIGRpc3Rpbmd1aXNoZWQ=
# Decode it back
decoded = base64.b64decode(encoded).decode("utf-8")
# URL-safe, unpadded (RFC 4648 §5) ─ the JWT flavour
base64.urlsafe_b64encode(b"data").rstrip(b"=")
# Encode a file, wrapped at 76 characters for MIME
with open("photo.png", "rb") as f:
mime = base64.encodebytes(f.read()).decode("ascii")
# Build a data URI for an image
uri = "data:image/png;base64," + base64.b64encode(open("photo.png", "rb").read()).decode() JavaScript で Base64 エンコード
btoa() は昔からあるブラウザ API ですが、U+00FF を超える文字があると InvalidCharacterError を投げます。Unicode テキストは TextEncoder で先にバイト列に変換してください。
// Browser, ASCII only
btoa("hello"); // "aGVsbG8="
atob("aGVsbG8="); // "hello"
// Browser, Unicode-safe ─ btoa() throws above U+00FF
const bytes = new TextEncoder().encode("héllo 🎉");
const b64 = btoa(Array.from(bytes, (b) => String.fromCharCode(b)).join(""));
const text = new TextDecoder().decode(
Uint8Array.from(atob(b64), (c) => c.charCodeAt(0))
);
// Node.js
Buffer.from("hello", "utf8").toString("base64");
Buffer.from(b64, "base64").toString("utf8");
// Modern runtimes ─ no btoa() dance needed
new TextEncoder().encode("hello").toBase64(); // "aGVsbG8="
Uint8Array.fromBase64("aGVsbG8=");
// URL-safe: swap the two characters URLs reserve, then drop padding
const urlSafe = b64.replace(/\+/g, "-").replace(/\//g, "_").replace(/=+$/, "");
// Encode a file the user picked, without uploading it
const buf = new Uint8Array(await file.arrayBuffer());
const fileB64 = btoa(Array.from(buf, (b) => String.fromCharCode(b)).join("")); Linux・macOS・Bash で Base64 エンコード
Linux なら GNU coreutils の base64 コマンドがどの環境にもあります。macOS には BSD 版が入っていてオプションが異なるため、両方を紹介します。
# Encode a file
base64 photo.png > photo.b64
# Encode a string ─ use printf, not echo, or you encode a trailing newline too
printf %s 'hello' | base64 # aGVsbG8=
echo 'hello' | base64 # aGVsbG8K ← the K is the newline
# One unbroken line (GNU): disable wrapping
base64 -w 0 photo.png
# MIME-compliant 76-character lines
base64 -w 76 photo.png
# Decode
base64 -d photo.b64 > photo.png
echo 'aGVsbG8=' | base64 --decode
# URL-safe output
base64 -w 0 photo.png | tr '+/' '-_' | tr -d '='
# macOS / BSD base64 ─ no -w flag; use -i / -o, and -D to decode
base64 -i photo.png -o photo.b64
base64 -D -i photo.b64 -o photo.png
# Also available almost everywhere ─ -A keeps it on one line
openssl base64 -A -in photo.png
# Copy straight to the clipboard on macOS
base64 -i photo.png | pbcopy PowerShell・Windows で Base64 エンコード
PowerShell は .NET を直接呼び出します。テキストのエンコードは意図して選びましょう。[Text.Encoding]::Unicode は UTF-16 LE で、powershell -EncodedCommand が求める形式ですが、多くの API が求める形式ではありません。
# Encode a string as UTF-8
$b64 = [Convert]::ToBase64String([Text.Encoding]::UTF8.GetBytes('hello')) # aGVsbG8=
# Decode it back
[Text.Encoding]::UTF8.GetString([Convert]::FromBase64String($b64))
# Encode a file
[Convert]::ToBase64String([IO.File]::ReadAllBytes("$PWD\photo.png")) | Set-Content photo.b64
# Decode a file
[IO.File]::WriteAllBytes("$PWD\photo.png", [Convert]::FromBase64String((Get-Content photo.b64 -Raw)))
# -EncodedCommand needs UTF-16 LE, not UTF-8
$cmd = [Convert]::ToBase64String([Text.Encoding]::Unicode.GetBytes('Get-Date'))
powershell -EncodedCommand $cmd
# cmd.exe: certutil ships with Windows (adds BEGIN/END header lines)
certutil -encode photo.png photo.b64
certutil -decode photo.b64 photo.png PHP で Base64 エンコード
base64_encode() と base64_decode() は拡張モジュールなしで使える組み込み関数です。信頼できない入力には base64_decode() の strict モードを指定してください。
$encoded = base64_encode('hello'); // aGVsbG8=
$decoded = base64_decode($encoded);
// Strict mode returns false instead of silently skipping invalid characters
$safe = base64_decode($input, true);
if ($safe === false) { /* not valid Base64 */ }
// URL-safe, unpadded
$url = rtrim(strtr(base64_encode($raw), '+/', '-_'), '=');
// A file as a data URI
$uri = 'data:image/png;base64,' . base64_encode(file_get_contents('photo.png'));
// MIME, 76-character lines
$mime = chunk_split(base64_encode($raw), 76, "\r\n"); Java で Base64 エンコード
java.util.Base64 は Java 8 から JDK に含まれており、基本・URL セーフ・MIME の 3 種類のエンコーダーを備えているので、外部ライブラリはほとんど不要です。
import java.util.Base64;
import java.nio.charset.StandardCharsets;
import java.nio.file.*;
// Always name the charset explicitly ─ the platform default is a portability bug
String encoded = Base64.getEncoder()
.encodeToString("hello".getBytes(StandardCharsets.UTF_8));
byte[] raw = Base64.getDecoder().decode(encoded);
String text = new String(raw, StandardCharsets.UTF_8);
// URL-safe, unpadded (RFC 4648 §5)
String jwtPart = Base64.getUrlEncoder().withoutPadding().encodeToString(bytes);
// MIME ─ 76-character lines separated by CRLF
String mime = Base64.getMimeEncoder()
.encodeToString(Files.readAllBytes(Path.of("photo.png"))); Go で Base64 エンコード
encoding/base64 には 4 種類のエンコーディングがあります。Std と URL はパディングあり、RawStd と RawURL はパディングなしの版です。
import (
"encoding/base64"
"io"
"os"
)
encoded := base64.StdEncoding.EncodeToString([]byte("hello")) // aGVsbG8=
decoded, err := base64.StdEncoding.DecodeString(encoded)
if err != nil { /* not valid Base64 */ }
// URL-safe and unpadded ─ what JWT libraries use
token := base64.RawURLEncoding.EncodeToString(raw)
// A file
data, _ := os.ReadFile("photo.png")
uri := "data:image/png;base64," + base64.StdEncoding.EncodeToString(data)
// Stream a large file instead of holding it all in memory
f, _ := os.Open("video.mp4")
defer f.Close()
w := base64.NewEncoder(base64.StdEncoding, os.Stdout)
io.Copy(w, f)
w.Close() // Close() flushes the final partial group ─ don't skip it C# で Base64 エンコード
一般的な用途は Convert.ToBase64String() で十分です。URL セーフ版には .NET 9 で追加された System.Buffers.Text.Base64Url を使います。
using System;
using System.IO;
using System.Text;
string encoded = Convert.ToBase64String(Encoding.UTF8.GetBytes("hello"));
string text = Encoding.UTF8.GetString(Convert.FromBase64String(encoded));
// MIME ─ inserts CRLF every 76 characters
Convert.ToBase64String(bytes, Base64FormattingOptions.InsertLineBreaks);
// URL-safe (.NET 9+)
System.Buffers.Text.Base64Url.EncodeToString(bytes);
// A file as a data URI
string uri = "data:image/png;base64," +
Convert.ToBase64String(File.ReadAllBytes("photo.png"));
// Validate untrusted input without throwing
if (Convert.TryFromBase64String(input, buffer, out int written)) { /* ok */ } Ruby で Base64 エンコード
encode64 ではなく strict_encode64 を使いましょう。encode64 は出力を 60 文字ごとに改行し、末尾にも改行を付けるため、ハッシュを比較するときに驚かされます。
require 'base64'
encoded = Base64.strict_encode64('hello') # "aGVsbG8="
decoded = Base64.decode64(encoded)
# encode64 wraps at 60 chars and adds a trailing newline ─ rarely what you want
Base64.encode64('hello') # "aGVsbG8=\n"
# URL-safe (RFC 4648 §5)
Base64.urlsafe_encode64(raw, padding: false)
# A file ─ binread avoids any encoding conversion
Base64.strict_encode64(File.binread('photo.png')) 仕組み
Base64 エンコードの仕組み。
Base64 は任意のバイト列を、どのシステムでも扱える 64 種類の文字で書き直します。3 バイト(24 ビット)を取り出し、6 ビットずつ 4 つのグループに切り分けます。各グループはアルファベット A–Z a–z 0–9 + / のインデックスになります。3 バイトが必ず 4 文字になるため、出力はちょうど 3 分の 1 大きくなります。
変換の具体例: Man → TWFu
| テキスト | M | a | n |
|---|---|---|---|
| ASCII | 77 | 97 | 110 |
| ビット列 | 01001101 01100001 01101110 | ||
| 6 ビットずつ分割 | 010011 010110 000101 101110 | ||
| インデックス | 19 · 22 · 5 · 46 | ||
| Base64 | TWFu | ||
入力の長さが 3 の倍数でない場合、出力が 4 の倍数になるよう最後のグループを = で埋めます。1 バイト余れば ==、2 バイト余れば = になります。
Base64 エンコードの例
よく使われる文字列を UTF-8 として Base64 エンコードした結果です。上のツールに貼り付けて確かめてみてください。
| 入力 | Base64 | 補足 |
|---|---|---|
| Hello, World! | SGVsbG8sIFdvcmxkIQ== | 13 バイトで 1 バイト余るため = が 2 つ |
| Hello World | SGVsbG8gV29ybGQ= | 11 バイトなので = が 1 つ |
| hello | aGVsbG8= | |
| base64 | YmFzZTY0 | 6 バイトは 3 で割り切れるのでパディングなし |
| user:password | dXNlcjpwYXNzd29yZA== | HTTP Basic 認証ヘッダーの値 |
| héllo 🎉 | aMOpbGxvIPCfjok= | UTF-8 では é が 2 バイト、絵文字が 4 バイト |
| {"alg":"HS256","typ":"JWT"} | eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9 | JWT ヘッダー(URL セーフ、パディングなし) |
Base64 のアルファベット(変換表)
0 から 63 までの 6 ビットの値が、それぞれ 1 文字に対応します。URL セーフ版のアルファベットも同じですが、62 が -、63 が _ になります。= はパディングで、アルファベットには含まれません。
| 値 | 文字 | 値 | 文字 | 値 | 文字 | 値 | 文字 |
|---|---|---|---|---|---|---|---|
| 0 | A | 16 | Q | 32 | g | 48 | w |
| 1 | B | 17 | R | 33 | h | 49 | x |
| 2 | C | 18 | S | 34 | i | 50 | y |
| 3 | D | 19 | T | 35 | j | 51 | z |
| 4 | E | 20 | U | 36 | k | 52 | 0 |
| 5 | F | 21 | V | 37 | l | 53 | 1 |
| 6 | G | 22 | W | 38 | m | 54 | 2 |
| 7 | H | 23 | X | 39 | n | 55 | 3 |
| 8 | I | 24 | Y | 40 | o | 56 | 4 |
| 9 | J | 25 | Z | 41 | p | 57 | 5 |
| 10 | K | 26 | a | 42 | q | 58 | 6 |
| 11 | L | 27 | b | 43 | r | 59 | 7 |
| 12 | M | 28 | c | 44 | s | 60 | 8 |
| 13 | N | 29 | d | 45 | t | 61 | 9 |
| 14 | O | 30 | e | 46 | u | 62 | + |
| 15 | P | 31 | f | 47 | v | 63 | / |
Base64 の種類の比較
「Base64」にはいくつかの種類があります。62 個の英数字は共通で、最後の 2 文字、パディング、改行の扱いが異なります。上のツールは最初の 3 種類を出力できます。
| 種類 | 仕様 | 62 / 63 番の文字 | パディング | 改行 | 主な用途 |
|---|---|---|---|---|---|
| 標準 | RFC 4648 §4 | + / | 必須 | なし | 汎用、JSON、データ URI |
| URL セーフ(base64url) | RFC 4648 §5 | - _ | 通常は省略 | なし | JWT、URL、ファイル名 |
| MIME | RFC 2045 | + / | 必須 | 76 文字ごとに CRLF | メールの添付ファイル |
| PEM | RFC 7468 | + / | 必須 | 64 文字ごと、BEGIN/END 付き | TLS 証明書、鍵 |
Base64 が使われる場面
メールの添付ファイル
SMTP は 7 ビットのテキスト向けに設計されました。MIME(RFC 2045)は添付ファイルを Base64 エンコードし、76 文字ごとに改行することで、メールサーバーを変更なしで通過させます。
データ URI
data:image/png;base64,… を使うと、小さな画像やフォント、SVG を HTML や CSS に直接埋め込み、リクエストを 1 回減らせます。数 KB 以下なら効果的ですが、それを超えると 33% の増加とキャッシュが効かないデメリットのほうが大きくなります。
JSON・XML のデータ
どちらの形式も任意のバイト列は扱えません。Base64 ならファイルを、どの JSON パーサーでも扱えるただの文字列に変換できます。REST API でバイナリを送るときの定番です。
JWT と URL
JSON Web Token は base64url(+ と / の代わりに - と _ を使い、パディングを省いた RFC 4648 §5 の形式)を使うため、トークンを URL や Cookie、ヘッダーに安全に入れられます。
HTTP Basic 認証
Authorization: Basic の中身は base64(ユーザー名:パスワード) そのものです。暗号化ではなく単なるエンコードなので、Basic 認証は HTTPS 上でしか使ってはいけません。
設定ファイルとシークレット
Kubernetes の Secret、PEM 形式の TLS 証明書、SSH 鍵は、いずれもバイナリを Base64 で保存しています。これによりファイルは読めて、差分が取れて、コピーしやすいテキストのままになります。
よくある 6 つの落とし穴
Base64 は暗号化ではない
誰でもコマンド 1 つでデコードできます。パスワードや API キー、個人情報を隠す目的には絶対に使わず、本物の暗号化を使ってください。
文字コードの不一致で文字化けする
Base64 がエンコードするのはバイト列で、テキストは文字コードを決めて初めてバイト列になります。UTF-8 でエンコードして Latin-1 でデコードすると文字化けします。両側とも UTF-8 にそろえましょう。
echo は改行を付け足す
echo "hi" | base64 は 2 バイトではなく 3 バイトをエンコードします。echo が \n を付け足すためです。入力したとおりにエンコードするには printf %s を使います。
改行で文字列が変わる
MIME の出力には 76 文字ごとに CRLF が入ります。多くのデコーダーは空白を無視しますが、「同じはず」の 2 つの文字列を厳密に比較したりハッシュを取ったりすると、片方が改行されているだけで一致しません。
+ と / は URL で壊れる
フォーム形式でクエリ文字列をデコードすると + は空白になり、/ はパスを区切ってしまいます。値を URL やファイル名に入れるときは必ず URL セーフ版を使いましょう。
データが 3 分の 1 増える
3 バイトごとに 4 文字になります。大きなファイルを Base64 にして JSON に入れると、送受信の両側で帯域とメモリを余計に消費します。その場合は multipart/form-data で送りましょう。
よくある質問
Base64 エンコードの疑問に回答。
Base64 エンコードとは何ですか?
Base64 は、バイナリデータを 64 種類の印字可能な ASCII 文字(A–Z、a–z、0–9、+、/)で表すバイナリ・テキスト変換方式です。メール本文、JSON や XML の文書、HTTP ヘッダー、URL、HTML 属性など、テキスト用に作られた経路でバイナリデータを安全に送るために使われます。Base64 は暗号化ではなくエンコードです。誰でもデコードできるため、機密性はありません。
テキストをオンラインで Base64 エンコードするには?
このページの入力欄にテキストを貼り付けるか入力してください。結果はすぐに出力欄に表示されます。エンコードは入力に合わせてブラウザ内で行われるので、ボタンを押す必要もページの再読み込みもありません。コピーボタンか Ctrl+Shift+C で Base64 文字列をクリップボードにコピーできます。
文字列を Base64 エンコードするには?
文字列はまず文字コード(ほとんどの場合 UTF-8)でバイト列に変換され、そのバイト列が Base64 エンコードされます。このページではこれが自動で行われるので、文字列を入力して結果をコピーするだけです。たとえば "Hello, World!" を Base64 エンコードすると SGVsbG8sIFdvcmxkIQ== になります。主要な言語ならコード 1 行で書けます。Python、JavaScript、Bash、PowerShell、PHP、Java、Go、C#、Ruby のコード例をご覧ください。
この Base64 エンコーダーは安全でプライバシーは守られますか?
はい。すべてのバイトは、お使いのブラウザのタブで動く JavaScript によってローカルでエンコードされます。テキスト、ファイル、画像がサーバーに送られることも、データベースに保存されることも、ログに残ることもありません。このサイトはアップロード先をまったく持たない静的ページです。エンコード中にブラウザの DevTools のネットワークタブを開くか、インターネットを切断してもツールが動くことを確かめれば、ご自身で確認できます。
Python で Base64 エンコードするには?
標準の base64 モジュールを使います。エンコードは base64.b64encode(data.encode("utf-8")).decode("ascii")、デコードは base64.b64decode(encoded).decode("utf-8") です。b64encode は str ではなく bytes を受け取るため、入力を先に UTF-8 にエンコードしている点に注意してください。URL セーフな出力には base64.urlsafe_b64encode、76 文字改行の MIME 出力には base64.encodebytes を使います。
PowerShell や Windows で Base64 エンコードするには?
PowerShell では、文字列のエンコードに [Convert]::ToBase64String([Text.Encoding]::UTF8.GetBytes("hello"))、ファイルのエンコードに [Convert]::ToBase64String([IO.File]::ReadAllBytes("C:\path\file.png")) を実行します。cmd.exe からは certutil -encode in.png out.b64 がどの Windows でも使えますが、BEGIN と END のヘッダー行が付きます。[Text.Encoding]::Unicode(UTF-16 LE)は powershell -EncodedCommand に渡すときだけ使ってください。
JavaScript で Base64 エンコードするには?
ASCII テキストなら、btoa(str) でエンコード、atob(str) でデコードできます。btoa は U+00FF を超える文字でエラーになるため、Unicode テキストは先にバイト列に変換します:btoa(Array.from(new TextEncoder().encode(str), (b) => String.fromCharCode(b)).join(""))。スプレッド構文の String.fromCharCode(...bytes) は、大きな入力でコールスタックがあふれるので避けてください。Node.js では Buffer.from(str, "utf8").toString("base64") を使います。最新の実行環境では Uint8Array.prototype.toBase64() も使えます。
Linux でファイルを Base64 エンコードするには?
coreutils の base64 コマンドを使います。base64 file.txt でエンコード、base64 -d file.b64 でデコードです。改行なしの 1 行が必要なら -w 0、MIME 準拠の出力なら -w 76 を付けます。文字列を直接エンコードするにはパイプで渡します:printf %s "hello" | base64。echo ではなく printf を使うと、末尾の改行がエンコード対象に含まれません。
Mac で Base64 エンコードするには?
macOS のターミナルには BSD 版の base64 コマンドがあります。ファイルは base64 -i file.png -o file.b64、文字列は printf %s "hello" | base64 でエンコードし、デコードは base64 -D -i file.b64 -o file.png です。Linux の GNU 版と違い、標準では改行せず、-w オプションもありません。pbcopy にパイプすれば結果を直接クリップボードにコピーできます。
画像を Base64 エンコードするには?
このページの「ファイル・画像」タブを開いて画像をドロップしてください。Base64 文字列に加えて、そのまま貼れるデータ URI(data:image/png;base64,...)と、HTML・CSS・Markdown のコードが生成されます。Base64 にすると画像は約 33% 大きくなるため、埋め込むのは 5 KB 程度までの小さな画像にとどめ、それより大きな画像はブラウザがキャッシュできる通常のファイルとして配信するのがおすすめです。
URL セーフ Base64 とは何ですか?
標準の Base64 は、URL やファイル名で特別な意味を持つ + と / を使います。URL セーフ Base64(RFC 4648 §5、base64url とも呼ばれます)は + を - に、/ を _ に置き換え、通常は = のパディングも省きます。JSON Web Token で使われている形式です。このページの「URL セーフ」オプションをオンにすると生成できます。
Base64 文字列の末尾に = が付くのはなぜですか?
Base64 は入力を 3 バイトずつ区切り、それぞれを 4 文字に変換します。入力の長さが 3 の倍数でないと、出力の長さを 4 の倍数に保つため最後のグループを = で埋めます。1 バイト余れば = が 2 つ、2 バイト余れば = が 1 つになります。パディング自体はデータを持たず、base64url など一部の形式では省略できます。
Base64 にするとデータはどれくらい大きくなりますか?
約 33% 大きくなります。入力 3 バイトが出力 4 文字になるので、比率は 4/3 です。パディングを含む正確な長さは、入力 n バイトに対して 4 × ⌈n / 3⌉ 文字です。たとえば 10 バイトは 16 文字、1 MB は約 1.33 MB になります。MIME モードでは改行でさらに約 2.6%(76 文字ごとに 2 バイトの CRLF)増えます。このツールでは、入力・出力の正確なサイズと増加率を入力中に出力欄の下に表示します。
ファイルサイズに上限はありますか?
サーバーを使わないので、サーバー側の上限はありません。実際の上限はデバイスのメモリとブラウザのタブの制限で決まります。パソコンなら数百 MB 程度までのファイルはたいてい処理でき、このツールは大きなファイルを分割して処理するのでブラウザが固まりません。サーバーにアップロードする他のツールは、多くの場合 100 MB までに制限されています。
Base64 エンコードは Unicode や絵文字にも対応していますか?
はい。テキストはまず選択した文字コードでバイト列に変換されます。既定の UTF-8 は絵文字を含むすべての Unicode 文字に対応しています。そのバイト列が Base64 エンコードされます。文字化けの原因の多くはエンコード側とデコード側の文字コードの違いなので、特別な理由がない限り両方とも UTF-8 にしてください。