網頁

2020/3/8

JavaScript Base64 編碼(Encode)及解碼(Decode)

JavaScript對資料進行Base64編碼(Encode)及解碼(Decode)的方法如下。


如果只是對一般的ASCII字串或binary資料編碼可使用瀏覽器的
window.btoa()進行base64 encode編碼;
windows.atob()進行base64 decode解碼。

如果對象是UTF-8字元,因為window.btoa()是處理1 byte的二進位資料,而UTF-8字長度是3 bytes,執行時會出現下面錯誤。

Uncaught DOMException: Failed to execute 'btoa' on 'Window': The string to be encoded contains characters outside of the Latin1 range.


所以若要對UTF-8字串base64編碼改用js-base64套件來進行base64編碼及解碼。

let base64EncodedString = window.btoa("hello world");
console.log(base64EncodedString); // aGVsbG8gd29ybGQ=
  
let base64DecodedString = window.atob(base64EncodedString);
console.log(base64DecodedString); // hello world

// 下面使用js-base64套件提供的方法進行編碼及解碼 

let base64UTF8EncodedString = Base64.encode("哈囉世界");
console.log(base64UTF8EncodedString);
  
let base64UTF8DecodedString = Base64.decode(base64UTF8EncodedString); // 5ZOI5ZuJ5LiW55WM
console.log(base64UTF8DecodedString); // 哈囉世界


沒有留言:

張貼留言