JavaScript 原生提供兩個 Base64 相關的方法: btoa():任意值轉為 Base64 編碼 atob():Base64 編碼轉為原來的值 encodeURIComponent() 該方法會轉碼除了語義字元之外的所有字元,即元字元也會被轉碼。 decodeURIComponent() ...
JavaScript 原生提供兩個 Base64 相關的方法:
btoa()
:任意值轉為 Base64 編碼atob()
:Base64 編碼轉為原來的值
註意:這兩個方法不適合非 ASCII 碼的字元,會報錯。
要將非 ASCII 碼字元轉為 Base64 編碼,必須中間插入一個轉碼環節:
- encodeURIComponent() 該方法會轉碼除了語義字元之外的所有字元,即元字元也會被轉碼。
Base64 編碼轉為原來的值時,同樣需要轉碼:
- decodeURIComponent() 該方法是
encodeURIComponent()
方法的逆運算。
示例:
const str = "Hello, world!"; const strToBase64 = btoa(encodeURIComponent(str)); console.log(strToBase64); // SGVsbG8lMkMlMjB3b3JsZCE= const base64ToStr = decodeURIComponent(atob(strToBase64)); console.log(base64ToStr); // Hello, world!