Base64 Encode Decode|Data URI と Basic 認証の変換手法
Base64 Encode Data URI
結論:30秒で Base64 を使いこなす
- 変換ツール: 下の埋め込みコンポーネントで即座に相互変換
- JS 標準関数:
btoa()(Encode) /atob()(Decode) ※日本語は TextEncoder が必要 - 重要な注意: 暗号化ではない / サイズが約 33% 増加する
1. オンライン Base64 エンコード / デコード
入力テキストやファイルの Base64 相互変換をブラウザ内でローカル処理します。
🔄 この場でBase64デコードを試す
2. JavaScript でのエンコード/デコードコード例
① ASCII 文字列の変換 (btoa / atob)
// エンコード
const encoded = btoa("Hello World");
console.log(encoded); // "SGVsbG8gV29ybGQ="
// デコード
const decoded = atob(encoded);
console.log(decoded); // "Hello World"
② 日本語(UTF-8)の文字化け対策
btoa() は Unicode 文字列をそのまま受け取ると InvalidCharacterError を発生させます。TextEncoder を挟むのが現代の安全な手法です。
// 日本語テキストを安全に Base64 エンコード
function encodeBase64Utf8(str) {
const bytes = new TextEncoder().encode(str);
const binString = Array.from(bytes, (byte) => String.fromCharCode(byte)).join("");
return btoa(binString);
}
console.log(encodeBase64Utf8("こんにちは")); // "44GT44KT44Gr44Gh44Gv"
3. 注意点(ハマりどころ)
- 暗号化として絶対に使わない
- パスワードやトークンを Base64 化しただけでデータベースや通信に載せるのは重大なセキュリティリスクです。
- Data URI での過度な画像埋め込み
- CSS や HTML 内に
data:image/png;base64,...で画像を直埋めすると、HTTP リクエスト数が減る反面、ファイルサイズが膨らみブラウザの HTML パースをブロックします。小アイコン(数 KB 以下)のみに留めてください。
- CSS や HTML 内に