高木のブログ

【JavaScript】Base64 でエンコード・デコード

2022/08/29

JavaScript で文字列を Base64 でエンコード・デコードする機会があったのでメモ

標準で btoa(), atob() が用意されているのでそれを使えばサクッとできる

const text = "Hello"

const encoded = btoa(text)
console.log(encoded) //=> SGVsbG8=

const decoded = atob(encoded)
console.log(decoded) //=> Hello

日本語などのマルチバイトの場合は、さらに encodeURIComponent(), decodeURIComponent() でエンコード・デコードする必要がある

const text = "こんにちは"

const encoded = btoa(encodeURIComponent(text))
console.log(encoded) //=> JUUzJTgxJTkzJUUzJTgyJTkzJUUzJTgxJUFCJUUzJTgxJUExJUUzJTgxJUFG

const decoded = decodeURIComponent(atob(encoded))
console.log(decoded) //=> こんにちは

補足

  • btoa: binary to ASCII
  • atob: ASCII to binary

参考


ytkg

Written by ytkg, Twitter, GitHub