base64编码:js实现base64编码的3种方式,多场景下分析使用

文章介绍了JavaScript实现Base64编码的三种方法,包括使用base64.js库、JavaScript内置的btoa和atob函数,以及在Node环境下使用内置方法。同时,文章提到了不同场景下的选择,如考虑IE兼容性、移动端项目、Node环境和Vue项目,并给出了相应的使用建议。
摘要由CSDN通过智能技术生成

js实现base64编码,前端一般应用场景在与后端接口参数中体现,后端可能需要某个字段是base64编码的字符,这时候就需要用前端的方法进行转换,再作为参数传递到服务端。

js实现base64编码的3种方式


1. 使用base64.js进行转换

获取base64.js,可以直接搜索base64.js下载。推荐使用npm下载:npm install --save js-base64,下载后在node_modules文件夹下面就能找到需要的base64.js。
在普通的html文件中使用:直接将js引入使用<script src="base64.js"></script>。
在vue中使用,用npm下载之后,直接用require引入使用:const Base64 = require('js-base64').Base64。
加密使用:Base64.encode('我是一段需要处理的字符')。
解密使用:Base64.decode('5oiR5piv5LiA5q616ZyA6KaB5aSE55CG55qE5a2X56ym')。
使用示例:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
    </head>
    <body>
        <script src="plugin/base64.js"></script>
        <script type="text/javascript">
            const str = '我是一段需要处理的字符';
            console.log(Base64.encode(str))
            console.log(Base64.decode('5oiR5piv5LiA5q616ZyA6KaB5aSE55CG55qE5a2X56ym'))
        </script>
    </body>
</html>

2. js内置方法进行转换

// btoa():字符串或二进制值转为Base64编码
// atob():Base64编码转为原来的编码
// 字符串转base64
export function baseToa(str) {
  // 对字符串进行编码
  var encode = encodeURI(str)
  // 对编码的字符串转化base64
  var base64 = btoa(encode)
  return base64
}

// base64转字符串
export function strTob(base64) {
  // 对base64转编码
  var decode = atob(base64)
  // 编码转字符串
  var str = decodeURI(decode)
  return str
}

3. node环境内置方法进行转换

node中自带的base64的编码与解码分为三种:普通字符串/十六进制/图片

  • 普通字符串
//编码
new Buffer(String).toString('base64');
//解码
new Buffer(base64Str, 'base64').toString();
  • 十六进制
//编码
new Buffer(String, 'base64').toString('hex');
//解码
new Buffer(base64Str, 'hex').toString('utf8');
const fs = require('fs');
//编码
function base64_encode(file) {
    let bitmap = fs.readFileSync(file);
    return new Buffer(bitmap).toString('base64');
}
//解码
function base64_decode(base64str, file) {
    var bitmap = new Buffer(base64str, 'base64');
    fs.writeFileSync(file, bitmap);
}

应用场景总结及建议

如果考虑到ie10及其以下低版本兼容性,使用第一种引入base64.js的方式;
如果是移动端项目或不考虑ie低版本兼容,直接使用第二种js内置方法进行转换,简单粗暴;
如果是在node环境中使用,就需要用到第三种方式;
如果是在vue项目中使用,推荐使用第一种,使用npm下载,直接引入使用。
 

此文章内容来自对以下文章的整合:
base64编码:js实现base64编码的3种方式,多场景下分析使用_js base64_上网的虫不叫网虫的博客-CSDN博客
字符串与base64相互转化_base64转字符串_Jim-zf的博客-CSDN博客

JavaScript中的Blob、File和Base64都是处理文件或数据的常用对象。下面将介绍它们的使用场景以及相互之间的转换。 Blob对象用于表示不能被修改的类文件数据,并且可以在被发送到服务器之前进行处理。它可用于在网页上生成和下载文件,比如将网页上的图片存储为Blob对象,然后使用URL.createObjectURL()方法将其显示为图像。此外,Blob对象也可以用于通过XMLHttpRequest或Fetch API将数据发送到服务器。 File对象继承自Blob对象,它是用户在表单中选择的文件的表示形式。File对象可以包含文件的名称、大小、类型以及最后修改日期等信息。在上传文件时,我们通常会使用File对象来获取文件的详细信息并进行验证。 Base64是一将二进制数据编码为ASCII字符的方式,常用于在文本传输中表示二进制数据。我们可以使用JavaScript的btoa()和atob()函数在Base64字符串和二进制数据之间进行相互转换。 在相互转换方面,可以将Blob对象转换为Base64字符串,然后使用toDataURL()方法将其转换为DataURL,或者使用FileReader对象的readAsDataURL()方法将Blob或File对象转换为DataURL。而将Base64字符串转换为Blob对象,则可以使用Blob构造函数并设置正确的MIME类型。 综上所述,Blob对象适用于处理类文件数据和发送到服务器,File对象适用于处理用户上传的文件,而Base64适用于在文本传输中表示二进制数据。根据具体的应用场景和需求,我们可以进行这三对象之间的相互转换。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值