base64是一種將二進制數據轉爲可打印字符的編碼方法。在瀏覽器環境中,JavaScript原生提供兩個方法,用來處理Base64轉碼:btoa方法將字符串或二進制值轉化爲Base64編碼,atob方法將Base64編碼轉化爲原來的編碼。瀏覽器
window.btoa("Hello World") // "SGVsbG8gV29ybGQ=" window.atob("SGVsbG8gV29ybGQ=") // "Hello World"
這兩個方法不適合非ASCII碼的字符,瀏覽器會報錯。編碼
window.btoa('你好') // InvalidCharacterError: An invalid or illegal character was specified, such as in an XML name.
要將非ASCII碼字符轉爲Base64編碼,必須中間插入一個瀏覽器轉碼的環節,再使用這兩個方法。code
function b64Encode( str ) { return window.btoa(unescape(encodeURIComponent( str ))); } function b64Decode( str ) { return decodeURIComponent(escape(window.atob( str ))); }
// 使用方法ip
b64Encode('你好') // "5L2g5aW9" b64Decode('5L2g5aW9') // "你好"