javascript技巧

关注公众号 jb51net

关闭
首页 > 网络编程 > JavaScript > javascript技巧 > Js的btoa和atob全局函数

JavaScript中btoa和atob全局函数示例详解

作者:凉生阿新

这篇文章主要给大家介绍了关于JavaScript中btoa和atob全局函数的相关资料,atob和btoa是window对象的两个函数,用来编码解码Base64,文中通过代码介绍的非常详细,需要的朋友可以参考下

前言

在 JavaScript 中,btoa 和 atob 是两个处理 Base64 编码的全局函数,它们通常用于在浏览器环境中对二进制数据进行编码和解码。

不过,需要注意的是,这两个函数并非 JavaScript 标准规范(ECMAScript)的一部分,而是浏览器环境(如 Web API)提供的。

一、btoa()

btoa() 函数用于将二进制数据编码为 Base64 格式的 ASCII 字符串。它接受一个 DOMString(即,一个 UTF-8 格式的字符串)作为参数,并返回一个包含原始数据的 Base64 编码的 ASCII 字符串。

const binaryString = "Hello, World!";  
const base64String = btoa(binaryString);  
console.log(base64String); // 输出:SGVsbG8sIFdvcmxkIQ== 

PS:btoa() 只能对 ASCII 字符串进行编码,因此如果你尝试对非 ASCII 字符串(如包含中文字符的字符串)进行编码,可能会得到意外的结果或抛出错误。

二、atob()

atob() 函数用于解码通过 btoa() 编码的 Base64 字符串。它接受一个包含 Base64 编码数据的 ASCII 字符串作为参数,并返回一个包含原始数据的 DOMString。如果字符串不是一个有效的 Base64 编码,则会抛出一个错误

const base64String = "SGVsbG8sIFdvcmxkIQ==";  
const decodedString = atob(base64String);  
console.log(decodedString); // 输出:Hello, World!

在使用 btoa() 和 atob() 时,请确保你的代码运行在支持这些函数的环境中(如浏览器)。如果你正在编写跨平台或服务器端 JavaScript 代码,可能需要使用其他库(如 Node.js 中的 Buffer 类)来处理 Base64 编码和解码。

三、优缺点

优点:

缺点:

使用场景

注意事项

附:JS中 atob 方法解码中文字符乱码问题

注:非中文的话直接用 btoa 和 atob 就行了

// 中文 base64 编码
function utf8_to_b64(str) {
    return window.btoa(unescape(encodeURIComponent(str)));
}


// 中文 base64 解码
function b64_to_utf8(str) {
    return decodeURIComponent(escape(window.atob(str)));
}

总结 

到此这篇关于JavaScript中btoa和atob全局函数的文章就介绍到这了,更多相关Js的btoa和atob全局函数内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文