Base64 encode 把任何資料以一種方式轉成文字的表達,包括可以把 binary 檔案使用文定去表達出來。 以下會講解在 Javascript 上如果把文字資料轉成 Base64 encode。 ### 由 Ascii 變成 Base64 ```js // encode a string var encodedData = window.btoa('Hello, world'); ``` ### 由 Base64 變成 Ascii ```js // decode the string var decodedData = window.atob(encodedData); ``` 就是這麼簡單了 !!! 但這是解決不到 unicode 的問題啦,因為只是 ascii 的轉換。要令 unicode 也可以成功轉換就要先把 unicode 的文字轉換成為 ascii 字符能夠表連出來。 ### 使用 escape 及 encodeURIComponent 我們可以透過使用 escape 及 encodeURIComponent 把 unicode 文字變成為 ascii 表達出來的文字。 ```js // ucs-2 string to base64 encoded ascii function utoa(str) { return window.btoa(unescape(encodeURIComponent(str))); } // base64 encoded ascii to ucs-2 string function atou(str) { return decodeURIComponent(escape(window.atob(str))); } ``` 用以上的方法就可以把 unicode 文字轉換為 Base64 encode。 --- 以下會提供一個舊舊的語法供參考 : ```js // encode a string var encoded = new Buffer('string data').toString('base64'); // decode a string var decoded = new Buffer(encoded, 'base64').toString('ascii'); ```