Node.jsでBase64文字列からバイナリデータに変換する
Node.jsでBase64文字列からバイナリデータに変換する方法です。
Base64文字列からバイナリに変換する方法としてatob()
を使う方法が見つかりますが、atob()
はdeprecated(非推奨)となっていたり、Node.jsでは使えなかったりします。
Base64 文字列への変換
まずは、Base64文字列を作成する方法。
const text = '1234567890zxcvb';
let encode = Buffer.from(text).toString('base64');
console.log(encode); // MTIzNDU2Nzg5MHp4Y3Zi
Base64文字列からバイナリデータへデコード
let decode = Buffer.from(encode, 'base64');
console.log(decode); // <Buffer 31 32 33 34 35 36 37 38 39 30 7a 78 63 76 62>
console.log(decode.toString()); // 1234567890zxcvb
BufferからTypedArrayへの変換
const bytes = Uint8Array.from(decode);
console.log(bytes);
Uint8Array(15) [
49, 50, 51, 52, 53, 54,
55, 56, 57, 48, 122, 120,
99, 118, 98
]
バイナリデータでのファイル保存について
ファイル保存はBuffer、TypedArrayどちらでも保存できます。
fs.writeFileSync(<ファイル名>, decode);
fs.writeFileSync(<ファイル名>, bytes);