1、浏览器环境
在 JavaScript 中,您可以使用 window.btoa()
方法将字符串进行 Base64 编码。然而,window.btoa()
方法只能处理包含 ASCII 字符的字符串,而不能处理 Unicode 字符。所以在进行编码之前,您可能需要使用 encodeURIComponent()
方法对字符串进行编码,以确保其中的特殊字符正确处理。
以下是一个示例代码,展示了如何使用 encodeURIComponent()
和 window.btoa()
进行字符串的 Base64 编码:
var str = "Hello, 你好!";
var encodedStr = window.btoa(encodeURIComponent(str));
console.log(encodedStr);
在上述示例中,str
是要进行编码的字符串。首先,我们使用 encodeURIComponent()
对字符串进行编码,然后再使用 window.btoa()
对编码后的字符串进行 Base64 编码。最后,我们将编码后的字符串输出到控制台。
请注意,window.btoa()
方法在浏览器环境中可用,而不是在 Node.js 环境中可用。如果您在 Node.js 环境中运行代码,可以使用 Buffer.from(str).toString('base64')
来进行 Base64 编码。
在 JavaScript 中,您可以使用 window.atob()
方法对 Base64 编码的字符串进行解码,并使用 decodeURIComponent()
方法解码包含特殊字符的字符串。
以下是一个示例代码,展示了如何使用 window.atob()
和 decodeURIComponent()
对 Base64 编码的字符串进行解码:
var encodedStr = "SGVsbG8sJUU1JUJEJUEwJUU1JUJEJUExJUU1JUI4JUFEIQ==";
var decodedStr = decodeURIComponent(window.atob(encodedStr));
console.log(decodedStr);
在上述示例中,encodedStr
是要进行解码的 Base64 编码字符串。我们首先使用 window.atob()
对字符串进行解码,然后再使用 decodeURIComponent()
对解码后的字符串进行解码。最后,我们将解码后的字符串输出到控制台。
2、Node.js环境
使用 new Buffer()
构造函数进行 Base64 编码的方式已经被弃用,并且在最新的 Node.js 版本中已经移除。取而代之的是使用 Buffer.from()
方法进行编码。
以下是使用 Buffer.from()
方法对字符串进行 Base64 编码的示例代码:
var str = "Hello, 你好!";
var encodedStr = Buffer.from(str).toString('base64');
console.log(encodedStr);
在上述示例中,我们使用 Buffer.from()
方法将字符串转换为 Buffer
对象,并使用 .toString('base64')
方法将其进行 Base64 编码。最后,我们将编码后的字符串输出到控制台。
使用 Buffer.from()
方法对 Base64 编码的字符串进行解码的示例代码:
var encodedStr = "SGVsbG8sJUU1JUJEJUEwJUU1JUJEJUExJUU1JUI4JUFEIQ==";
var decodedStr = Buffer.from(encodedStr, 'base64').toString('utf8');
console.log(decodedStr);
在上述示例中,我们使用 Buffer.from()
方法将 Base64 编码的字符串转换为 Buffer
对象,并使用 .toString('utf8')
方法将其解码为 UTF-8 字符串。最后,我们将解码后的字符串输出到控制台。