首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

base64 编码 js

Base64 编码是一种常见的数据编码方式,在 JavaScript 中有广泛的应用。以下是对 Base64 编码在 JS 中的相关介绍:

基础概念: Base64 编码将二进制数据转换为 ASCII 字符串格式,使用 64 个字符来表示数据。常用于在需要文本传输但实际是二进制数据的场景,如在 HTML、CSS、XML 中嵌入图片,或者在网络传输中编码数据。

优势

  1. 可以在文本环境中传输二进制数据。
  2. 数据大小通常会增加约 33%。

类型:无特定类型之分,是一种通用的编码方式。

应用场景

  1. 图片嵌入到 HTML 或 CSS 中。
  2. 在 HTTP 请求中传输二进制数据。
  3. 对小文件进行简单编码传输。

示例代码

代码语言:txt
复制
// 编码
const str = "Hello World!";
const encoded = btoa(str);
console.log(encoded); // "SGVsbG8gV29ybGQh"

// 解码
const decoded = atob(encoded);
console.log(decoded); // "Hello World!"

如果在编码或解码过程中遇到问题:

  1. 数据包含非 ASCII 字符时可能出现错误。解决方法是先将字符串转换为 UTF-8 编码的字节序列,再进行 Base64 编码。
  2. 对于非常长的字符串,可能会超出浏览器或环境的限制。此时可以考虑分段处理。

例如,处理包含非 ASCII 字符的字符串:

代码语言:txt
复制
function utf8ToBase64(str) {
  return btoa(encodeURIComponent(str).replace(/%([0-9A-F]{2})/g, 
    function toSolidBytes(match, p1) {
      return String.fromCharCode('0x' + p1);
    }));
}

function base64ToUtf8(str) {
  return decodeURIComponent(atob(str).split('').map(function(c) {
    return '%' + c.charCodeAt(0).toString(16).padStart(2, '0');
  }).join(''));
}

const unicodeStr = "你好";
const encodedUnicode = utf8ToBase64(unicodeStr);
console.log(encodedUnicode); // "5L2g5aW9"

const decodedUnicode = base64ToUtf8(encodedUnicode);
console.log(decodedUnicode); // "你好"

希望以上内容能满足您的需求!

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券