base64轉碼(JS)

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') // "你好"
相關文章
相關標籤/搜索