Base64 Encoding and Decoding in JavaScript in Adobe AIR

Created Thu, 12 Jun 2008 12:16:01 +0000 Modified Thu, 12 Jun 2008 12:16:01 +0000
168 Words

I have been working on a JavaScript AIR app for the past week or so while on the on AIR Tour in Europe, and ran into the need to Base64 encode some data. I knew that there were some JavaScript libraries that did this, and I could also create a SWF library that used the Flex Base64Encoder class. However, I didn’t like either of these solutions as I was concerned about performance with using a JavaScript implementation, and didn’t want to hassle with creating a SWF library to link into JavaScript.

Well, after some searching on Google, I discovered that webkit has native Base64 encoding and decoding functions, respectively named btoa and atob.

Here is how you can use them from JavaScript:

var s = "foo";
var encoded = btoa(s);
var decoded = atob(encoded);
window.runtime.trace(s);
window.runtime.trace(encoded);
window.runtime.trace(decoded);

This outputs:

foo
Zm9v
foo

Among other things, this can come in handy if you need to create custom HTTP authentication headers.

You can find more information on the apis here.