当前位置:首页 > JavaScript

js atob实现

2026-02-01 13:47:58JavaScript

atob 函数的基本用法

atob 是 JavaScript 中的一个全局函数,用于解码 Base64 编码的字符串。它接受一个 Base64 编码的字符串作为参数,返回解码后的原始字符串。

const encodedStr = 'SGVsbG8gV29ybGQh'; // Base64 编码的 "Hello World!"
const decodedStr = atob(encodedStr);
console.log(decodedStr); // 输出: "Hello World!"

处理非 ASCII 字符

atobbtoa 在处理非 ASCII 字符时可能会出现问题。为了解决这个问题,可以使用 encodeURIComponentdecodeURIComponent 进行转义。

js atob实现

const originalStr = '你好,世界!';
const encodedStr = btoa(encodeURIComponent(originalStr));
const decodedStr = decodeURIComponent(atob(encodedStr));
console.log(decodedStr); // 输出: "你好,世界!"

替代方案:Buffer(Node.js 环境)

在 Node.js 环境中,可以使用 Buffer 类来实现 Base64 编解码。

js atob实现

const encodedStr = Buffer.from('Hello World!', 'utf8').toString('base64');
console.log(encodedStr); // 输出: "SGVsbG8gV29ybGQh"

const decodedStr = Buffer.from(encodedStr, 'base64').toString('utf8');
console.log(decodedStr); // 输出: "Hello World!"

替代方案:TextEncoder 和 TextDecoder(浏览器环境)

现代浏览器支持 TextEncoderTextDecoder API,可以用于处理 Base64 编解码。

const encoder = new TextEncoder();
const decoder = new TextDecoder();

const originalStr = 'Hello World!';
const encodedStr = btoa(String.fromCharCode(...encoder.encode(originalStr)));
console.log(encodedStr); // 输出: "SGVsbG8gV29ybGQh"

const decodedStr = decoder.decode(new Uint8Array([...atob(encodedStr)].map(c => c.charCodeAt(0))));
console.log(decodedStr); // 输出: "Hello World!"

注意事项

atobbtoa 是浏览器环境中的全局函数,但在 Node.js 中不可用。在 Node.js 中需要使用 Buffer 或其他替代方案。

Base64 编码会增加数据大小约 33%,因此不适合用于大量数据的编码。

标签: jsatob
分享给朋友:

相关文章

js实现计算器

js实现计算器

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

js实现类

js实现类

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

js实现图

js实现图

JavaScript 实现图的常用方法 在 JavaScript 中,图(Graph)可以通过多种方式实现,常见的包括邻接表(Adjacency List)和邻接矩阵(Adjacency Matrix…

js画图实现

js画图实现

使用Canvas API绘制图形 Canvas是HTML5提供的绘图API,通过JavaScript操作Canvas元素可以绘制各种图形。以下是一个简单的示例: <canvas id="myC…

js验证码的实现

js验证码的实现

验证码的基本实现原理 验证码(CAPTCHA)的核心目标是区分人类用户和自动化程序。JavaScript可用于生成或验证客户端验证码,但需注意纯前端验证可能被绕过,通常需结合后端验证。 纯前端验证码…

js实现 拖动

js实现 拖动

实现拖动的步骤 HTML 结构 创建一个可拖动的元素和一个放置区域: <div id="draggable" draggable="true">拖动我</div> <d…