当前位置:首页 > JavaScript

btoa js实现

2026-03-15 10:54:13JavaScript

btoa 函数的作用

btoa 是 JavaScript 中的一个全局函数,用于将二进制字符串(通常是 ASCII 字符串)编码为 Base64 格式的字符串。Base64 是一种常见的编码方式,常用于在文本环境中传输或存储二进制数据。

基本语法

const encodedData = btoa(stringToEncode);
  • stringToEncode:需要编码的二进制字符串(仅支持 ASCII 字符)。
  • encodedData:返回 Base64 编码后的字符串。

使用示例

const originalString = 'Hello, World!';
const encodedString = btoa(originalString);
console.log(encodedString); // 输出 "SGVsbG8sIFdvcmxkIQ=="

处理非 ASCII 字符

btoa 仅支持 ASCII 字符,如果输入字符串包含 Unicode 字符(如中文、表情符号等),需要先将其转换为 UTF-8 编码的二进制字符串。可以使用 encodeURIComponentunescape 组合实现:

btoa js实现

function utf8ToBase64(str) {
    return btoa(unescape(encodeURIComponent(str)));
}

const unicodeString = '你好,世界!';
const encodedUnicode = utf8ToBase64(unicodeString);
console.log(encodedUnicode); // 输出 "5L2g5aW977yM5LiW55WM77yB"

解码 Base64 字符串

使用 atob 函数可以解码 Base64 字符串:

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

对于包含 Unicode 的字符串,解码时需要反向操作:

btoa js实现

function base64ToUtf8(str) {
    return decodeURIComponent(escape(atob(str)));
}

const decodedUnicode = base64ToUtf8(encodedUnicode);
console.log(decodedUnicode); // 输出 "你好,世界!"

注意事项

  • btoaatob 是浏览器环境中的全局函数,Node.js 中不直接支持。在 Node.js 中可以使用 Buffer 实现类似功能:

    // Node.js 中的 Base64 编码
    const encoded = Buffer.from('Hello, World!', 'utf8').toString('base64');
    console.log(encoded); // 输出 "SGVsbG8sIFdvcmxkIQ=="
    
    // Node.js 中的 Base64 解码
    const decoded = Buffer.from(encoded, 'base64').toString('utf8');
    console.log(decoded); // 输出 "Hello, World!"
  • 如果输入字符串包含非 ASCII 字符且未正确处理,btoa 会抛出错误。

标签: btoajs
分享给朋友:

相关文章

jquery.js

jquery.js

jQuery 简介 jQuery 是一个快速、简洁的 JavaScript 库,用于简化 HTML 文档遍历、事件处理、动画设计和 Ajax 交互。它的设计宗旨是“Write Less, Do Mor…

js实现动画

js实现动画

使用 CSS 动画与 JavaScript 控制 通过 JavaScript 动态添加或移除 CSS 类来触发动画。CSS 定义关键帧(@keyframes),JavaScript 通过 classL…

js实现验证

js实现验证

验证表单输入 使用JavaScript验证表单输入是常见的需求。可以通过监听表单提交事件,检查输入字段是否符合要求。 document.getElementById('myForm').addEve…

js实现图表

js实现图表

在JavaScript中实现图表通常使用流行的图表库,以下是几种常见的方法和工具: 使用Chart.js Chart.js是一个简单灵活的库,适合快速生成响应式图表。安装方式包括CDN引入或npm安…

js实现dh

js实现dh

JavaScript 实现 DH(Diffie-Hellman)密钥交换 Diffie-Hellman(DH)密钥交换是一种安全协议,允许双方在不安全的通信信道上建立一个共享密钥。以下是如何在 Jav…

js钟表实现

js钟表实现

实现JavaScript钟表的基本方法 创建一个简单的JavaScript钟表可以通过以下步骤完成,涵盖数字和模拟两种形式。 数字钟表实现 HTML结构只需一个显示时间的容器: <div i…