Base64 轉碼

Base64 轉碼
有時,文本里麪包含一些不可打印的符號,比如 ASCII 碼0到31的符號都無法打印出來,這時可以使用 Base64 編碼,將它們轉成可以打印的字符。另一個場景是,有時需要以文本格式傳遞二進制數據,那麼也可以使用 Base64 編碼。

所謂 Base64 就是一種編碼方法,可以將任意值轉成 0~9、A~Z、a-z、+和/這64個字符組成的可打印字符。使用它的主要目的,不是爲了加密,而是爲了不出現特殊字符,簡化程序的處理。

JavaScript 原生提供兩個 Base64 相關的方法。

btoa():任意值轉爲 Base64 編碼
atob():Base64 編碼轉爲原來的值
var string = ‘Hello World!’;
btoa(string) // “SGVsbG8gV29ybGQh”
atob(‘SGVsbG8gV29ybGQh’) // “Hello World!”
注意,這兩個方法不適合非 ASCII 碼的字符,會報錯。

btoa(‘你好’) // 報錯
要將非 ASCII 碼字符轉爲 Base64 編碼,必須中間插入一個轉碼環節,再使用這兩個方法。

function b64Encode(str) {
return btoa(encodeURIComponent(str));
}

function b64Decode(str) {
return decodeURIComponent(atob(str));
}

b64Encode(‘你好’) // “JUU0JUJEJUEwJUU1JUE1JUJE”
b64Decode(‘JUU0JUJEJUEwJUU1JUE1JUJE’) // “你好”

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章