【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