当前位置:首页 > JavaScript

js atob实现

2026-04-06 06:35:52JavaScript

atob 函数的作用

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

基本用法

const encodedString = 'SGVsbG8gV29ybGQh'; // base64 编码的 "Hello World!"
const decodedString = atob(encodedString);
console.log(decodedString); // 输出: "Hello World!"

注意事项

atob 只能解码有效的 base64 字符串。如果传入的字符串包含非 base64 字符,会抛出异常。

try {
  const invalidString = 'Hello!'; // 不是有效的 base64
  const decoded = atob(invalidString);
} catch (e) {
  console.error('解码失败:', e); // 抛出异常
}

兼容性处理

在 Node.js 环境中,atob 不是全局可用的,需要使用 Buffer 来实现相同功能:

// Node.js 中的替代方案
const encodedString = 'SGVsbG8gV29ybGQh';
const decodedString = Buffer.from(encodedString, 'base64').toString('utf8');
console.log(decodedString); // 输出: "Hello World!"

处理 Unicode 字符

atob 对 Unicode 字符支持有限,可能需要额外处理:

js atob实现

// 编码 Unicode 字符串
function encodeUnicode(str) {
  return btoa(encodeURIComponent(str).replace(/%([0-9A-F]{2})/g, (match, p1) => {
    return String.fromCharCode('0x' + p1);
  }));
}

// 解码 Unicode 字符串
function decodeUnicode(str) {
  return decodeURIComponent(atob(str).split('').map(c => {
    return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2);
  }).join(''));
}

const unicodeStr = '你好';
const encoded = encodeUnicode(unicodeStr);
const decoded = decodeUnicode(encoded);
console.log(decoded); // 输出: "你好"

标签: jsatob
分享给朋友:

相关文章

js实现分页

js实现分页

实现分页的基本思路 分页功能通常需要处理数据分割、页码生成和用户交互。核心逻辑包括计算总页数、根据当前页截取数据、渲染页码按钮等。 前端分页实现(静态数据) 假设已有全部数据,仅需前端分页展示:…

js实现动画

js实现动画

使用 CSS 动画与 JavaScript 控制 通过 JavaScript 动态添加或移除 CSS 类来触发动画。CSS 定义关键帧(@keyframes),JavaScript 通过 classL…

js实现验证码

js实现验证码

使用Canvas生成图形验证码 在HTML中创建一个Canvas元素用于绘制验证码。通过JavaScript随机生成数字或字母组合,并添加干扰线、噪点等干扰元素增强安全性。 <canvas i…

js实现全选

js实现全选

实现全选功能的方法 在JavaScript中实现全选功能通常涉及监听全选复选框的点击事件,并根据其状态控制其他复选框的选中状态。以下是几种常见的实现方式: 基础DOM操作实现 通过获取所有目标复选框…

利用js实现

利用js实现

使用 JavaScript 实现 在 JavaScript 中,可以通过多种方式实现功能,具体取决于需求。以下是几种常见的方法: 方法一:使用原生 JavaScript // 示例代码…

js实现密码

js实现密码

密码强度验证 使用正则表达式验证密码强度是一种常见方法。以下代码检查密码是否包含大小写字母、数字和特殊字符,且长度至少为8位: function checkPasswordStrength(pass…