当前位置:首页 > 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实现vue路由

js实现vue路由

Vue路由基础实现 使用Vue Router实现前端路由需要先安装并配置路由库。Vue Router是Vue.js官方的路由管理器。 安装Vue Router: npm install vue-r…

js实现拖拽

js实现拖拽

实现拖拽的基本步骤 通过监听鼠标事件(mousedown、mousemove、mouseup)实现拖拽功能。以下是核心代码逻辑: const draggableElement = document…

js实现图片轮播

js实现图片轮播

实现基础图片轮播 使用HTML、CSS和JavaScript创建一个简单的图片轮播。HTML部分定义轮播容器和图片,CSS设置样式和动画效果,JavaScript处理轮播逻辑。 <div c…

js实现全屏

js实现全屏

实现全屏的基本方法 使用JavaScript实现全屏功能主要依赖Element.requestFullscreen()方法。现代浏览器均支持此API,但不同浏览器可能需要添加前缀。 // 触发全屏…

js实现验证

js实现验证

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

js 实现vue

js 实现vue

Vue.js 的基本实现 在 JavaScript 中实现 Vue.js 的核心功能,可以通过数据绑定、响应式系统和虚拟 DOM 来实现。以下是实现 Vue.js 核心功能的简化版本。 数据响应式…