淺談JavaScript中Base64轉碼的兩個函數
當前位置:點晴教程→知識管理交流
→『 技術文檔交流 』
在 JavaScript 中,atob 和 btoa 是兩個用于Base64 編碼和解碼的內置函數,分別用于將 Base64 編碼的字符串解碼為原始字符串,以及將原始字符串編碼為 Base64 格式。 首先說一說這兩個函數的名稱來源吧。 btoa: 表示 "binary to ASCII"(二進制到 ASCII)。 它的作用是將二進制數據(或字符串)編碼為 Base64 格式,Base64 是一種用 ASCII 字符表示二進制數據的方式。因此,btoa 的命名反映了將任意二進制數據轉換為 ASCII 字符集(A-Z、a-z、0-9、+、/)的過程。 atob: 表示 "ASCII to binary"(ASCII 到二進制)。 它將 Base64 編碼的 ASCII 字符串解碼回原始的二進制數據(或字符串)。命名反映了解碼過程,即從Base64 的 ASCII 表示還原為原始數據。 需要注意的是,atob 和 btoa 最早出現在 Netscape 網景瀏覽器中,用于處理 Base64 編碼和解碼。當時,Base64 常用于將二進制數據嵌入到文本格式(如 HTML、CSS 或 MIME 郵件)中。關于網景瀏覽器,估計只有年紀稍大的人才會用過。 很多人以為 atob 和 btoa 是某種縮寫,但實際上它們不是傳統意義上的縮寫,而是基于功能描述的命名,源于早期瀏覽器對 Base64 編碼的需求,這一點尤其要注意。 btoa 函數用法: 它接受一個字符串,通常是ASCII 字符或二進制數據。如果輸入的字符串包含非 ASCII 字符(如中文),需要使用 encodeURIComponent先將其轉換為適合的格式。返回 Base64 編碼后的字符串。
運行結果: atob 函數用法: 接受一個 Base64 編碼的字符串,如果輸入的 Base64 字符串無效,會拋出錯誤。對于非 ASCII 字符的解碼,可能需要結合 decodeURIComponent。返回解碼后的原始字符串。
btoa 和 atob 的局限性: 主要處理 ASCII 字符,對于 Unicode 字符(如中文、表情符號等),需要配合encodeURIComponent 和 decodeURIComponent 使用。 不支持直接處理二進制數據(如文件流)。如果需要處理二進制數據,可以使用 ArrayBuffer 或 TypedArray 結合其他方法。 ? 閱讀原文:https://mp.weixin.qq.com/s/j1W_brSR0Tr33zG0N4m6_w 該文章在 2025/4/17 14:43:37 編輯過 |
關鍵字查詢
相關文章
正在查詢... |