当前位置:首页 > JavaScript

js实现base 64

2026-02-02 13:37:37JavaScript

Base64 编码与解码的实现

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

编码字符串为 Base64

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

js实现base 64

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 编码:

js实现base 64

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 转换:

// 编码
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实现继承

原型链继承 通过将子类的原型指向父类的实例实现继承。子类实例可以访问父类原型上的属性和方法。 function Parent() { this.name = 'parent'; } Parent…

js实现文件下载

js实现文件下载

使用 a 标签下载文件 通过动态创建 a 标签并设置 download 属性实现文件下载。适用于已知文件 URL 或 Blob 数据的情况。 function downloadFile(url, f…

js实现复制到剪贴板

js实现复制到剪贴板

使用document.execCommand方法(传统方式,已废弃但部分浏览器仍支持) 该方法适用于旧版浏览器,但已被标记为废弃。执行前需确保文本已被选中: function copyToClipb…

js分组实现

js分组实现

分组实现方法 在JavaScript中,可以通过多种方式实现数组或对象的分组操作。以下是几种常见的方法: 使用Array.prototype.reduce() 通过reduce方法可以轻松实现数组分…

js实现百叶窗

js实现百叶窗

使用CSS和JavaScript实现百叶窗效果 通过CSS动画和JavaScript事件监听可以实现百叶窗效果。核心思路是将内容区域分割为多个条状元素,通过控制它们的展开/折叠状态来模拟百叶窗。 &…

js 实现拖拽

js 实现拖拽

实现拖拽的基本步骤 在JavaScript中实现拖拽功能需要监听几个关键事件:mousedown、mousemove和mouseup。以下是实现的基本逻辑。 监听目标元素的mousedown事件,记…