当前位置:首页 > JavaScript

js实现base 64

2026-02-02 13:37:37JavaScript

Base64 编码与解码的实现

在 JavaScript 中,可以通过内置的 btoaatob 函数实现 Base64 的编码和解码。以下是具体的使用方法:

编码字符串为 Base64

使用 btoa 函数将普通字符串编码为 Base64 格式:

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

解码 Base64 为字符串

使用 atob 函数将 Base64 字符串解码为原始字符串:

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

处理 Unicode 字符

btoaatob 仅支持 ASCII 字符,对于 Unicode 字符(如中文),需要先进行 URI 编码:

const unicodeString = '你好,世界!';
const encoded = btoa(encodeURIComponent(unicodeString));
console.log(encoded); // 输出: JUU0JUJEJUEwJUU1JUE1JUJEJUVGJUJDJThDJUU0JUI4JTk2JUU3JTk1JThDJUVGJUJDJTgx

const decoded = decodeURIComponent(atob(encoded));
console.log(decoded); // 输出: 你好,世界!

二进制数据(如 ArrayBuffer)的 Base64 转换

对于二进制数据,可以通过 Uint8ArrayString.fromCharCode 实现转换:

function arrayBufferToBase64(buffer) {
    let binary = '';
    const bytes = new Uint8Array(buffer);
    for (let i = 0; i < bytes.byteLength; i++) {
        binary += String.fromCharCode(bytes[i]);
    }
    return btoa(binary);
}

function base64ToArrayBuffer(base64) {
    const binaryString = atob(base64);
    const bytes = new Uint8Array(binaryString.length);
    for (let i = 0; i < binaryString.length; i++) {
        bytes[i] = binaryString.charCodeAt(i);
    }
    return bytes.buffer;
}

// 示例
const buffer = new Uint8Array([72, 101, 108, 108, 111]).buffer;
const base64 = arrayBufferToBase64(buffer);
console.log(base64); // 输出: SGVsbG8=

const decodedBuffer = base64ToArrayBuffer(base64);
console.log(new Uint8Array(decodedBuffer)); // 输出: Uint8Array [72, 101, 108, 108, 111]

Node.js 环境中的实现

在 Node.js 中,可以使用 Buffer 实现 Base64 转换:

js实现base 64

// 编码
const originalString = 'Hello, World!';
const encodedString = Buffer.from(originalString).toString('base64');
console.log(encodedString); // 输出: SGVsbG8sIFdvcmxkIQ==

// 解码
const decodedString = Buffer.from(encodedString, 'base64').toString();
console.log(decodedString); // 输出: Hello, World!

通过这些方法,可以轻松实现 JavaScript 中的 Base64 编码与解码功能。

标签: jsbase
分享给朋友:

相关文章

js实现计算器

js实现计算器

实现基础计算器功能 使用JavaScript创建一个基础计算器需要处理数字输入、运算符逻辑和结果显示。以下是一个简单的实现示例: let currentInput = '0'; let previo…

jquery.js

jquery.js

jQuery 是一个快速、简洁的 JavaScript 库,简化了 HTML 文档遍历、事件处理、动画设计和 Ajax 交互等操作。以下是关于 jQuery.js 的核心信息和使用方法: 获取 jQ…

js实现类

js实现类

JavaScript 实现类的几种方式 JavaScript 是一种基于原型的语言,但在 ES6 之后引入了 class 语法糖,使得实现类更加直观。以下是几种常见的实现方式: 使用构造函数 传统的…

js 实现链表

js 实现链表

链表的基本概念 链表是一种线性数据结构,由一系列节点组成,每个节点包含数据和指向下一个节点的指针。与数组不同,链表在内存中是非连续存储的,插入和删除操作效率较高。 链表的实现 在 JavaScrip…

jquery js

jquery js

jQuery 简介 jQuery 是一个快速、简洁的 JavaScript 库,简化了 HTML 文档遍历、事件处理、动画和 Ajax 交互。它兼容多种浏览器,提供易于使用的 API,使开发者能够更高…

js实现驼峰

js实现驼峰

实现驼峰命名的几种方法 使用正则表达式和字符串替换 通过正则表达式匹配字符串中的特定模式(如下划线或短横线),并将其后的字母转换为大写,同时移除分隔符。 function toCamelCase(s…