Decode URL Safe Base64 in JavaScript (browser side)
21,367
Solution 1
For posterity,
atob(data.replace(/_/g, '/').replace(/-/g, '+'))
As stated by the spec https://www.rfc-editor.org/rfc/rfc4648#section-5 however because this uses atob()
it does not support unicode characters and thus requires a polyfill.
Solution 2
Finally found it. This does URL Safe decoding
https://github.com/dankogai/js-base64
![wibberding](https://i.stack.imgur.com/t7PLL.jpg?s=256&g=1)
Author by
wibberding
I like the full stack. Ruby (on Rails) and JavaScript are my languages of choice.
Updated on June 14, 2020Comments
-
wibberding about 4 years
I am using Gmail's API to get emails from my account. The body of the message is delivered in a "URL safe base64" format. What is the best way to decode this for use? I have found some nodejs solutions, but no client side ones. window.atob does not work since it is URL safe.
Thanks for any help.
-
moltenform over 6 yearsWas this meant to be atob(data).replace(/_/g, '/').replace(/-/g, '+') instead
-
Tcharl almost 6 yearsReading from the Base64 version of common codec, it should be the inverse:btoa(data) .replace(/\//g, '_').replace(/\+/g, '-'))),
-
xori over 4 yearsjmnben: no we want to replace the '_' and '-' before we do the decoding.