当前位置:首页 > JavaScript

js atob实现

2026-04-06 06:35:52JavaScript

atob 函数的作用

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

js atob实现

基本用法

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

注意事项

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

js atob实现

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 字符支持有限,可能需要额外处理:

// 编码 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实现图片上传

图片上传的基本实现 使用HTML的<input type="file">元素配合JavaScript的File API可以实现图片上传功能。HTML部分需要创建一个文件选择输入框和一个用于…

js实现全选

js实现全选

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

jquery js

jquery js

jQuery 简介 jQuery 是一个快速、简洁的 JavaScript 库,简化了 HTML 文档遍历、事件处理、动画和 Ajax 交互。它兼容多种浏览器,提供易于使用的 API,使开发者能够更高…

js实现防洪

js实现防洪

防抖(Debounce)实现 防抖的核心思想是在事件触发后延迟执行回调函数,若在延迟时间内再次触发事件,则重新计时。适用于输入框搜索、窗口调整等场景。 function debounce(f…

js画图实现

js画图实现

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

js实现显示隐藏

js实现显示隐藏

显示隐藏的实现方法 在JavaScript中,实现元素的显示和隐藏可以通过多种方式完成。以下是几种常见的方法: 修改CSS的display属性 通过改变元素的display属性可以在none(隐藏)…