当前位置:首页 > 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实现跳转

使用 window.location 跳转 通过修改 window.location.href 或直接使用 window.location 实现页面跳转,适用于普通跳转或带参数的 URL。 // 方…

js实现图片预览

js实现图片预览

使用FileReader API实现图片预览 通过FileReader对象读取用户选择的图片文件并显示预览: const input = document.getElementById('image…

js 实现分页

js 实现分页

实现分页的基本逻辑 分页功能通常需要后端返回数据总量或总页数,前端根据当前页码和每页条数截取对应数据。以下是一个基于JavaScript的简单分页实现方案: 前端分页实现 假设已有从后端获取的完整数…

实现继承js

实现继承js

实现继承的方式 在JavaScript中,实现继承可以通过多种方式完成,每种方式都有其优缺点。以下是几种常见的实现继承的方法: 原型链继承 原型链继承是最基本的继承方式,通过将子类的原型指向父类的实…

js 实现日历

js 实现日历

实现日历的基本思路 日历的核心功能是展示日期,并允许用户进行日期选择或导航。JavaScript 可以动态生成日历的 HTML 结构,并处理用户交互逻辑。 基础日历结构 日历通常包含头部(显示月份和…

js实现刷新页面

js实现刷新页面

刷新页面的方法 在JavaScript中,可以通过多种方式实现页面刷新。以下是几种常见的方法: 使用 location.reload() 调用 location.reload() 方法可以重新加载当…