js base64编码 java 解码_js实现base64编码与解码(原生js)

一直以来很多人使用到 JavaScript 进行 base64 编码解码时都是使用的 Base64.js,但事实上,浏览器很早就原生支持 base64 的编码与解码了

以前的方式

编码:

Base64.encode(‘xiaomabuhei‘);

// 返回:‘eGlhb21hYnVoZWk=‘

解码:

Base64.decode(‘eGlhb21hYnVoZWk=‘);

// 返回:‘xiaomabuhei‘

而浏览器的原生支持的编码与解码

编码:

// 浏览器中

var decodedData = window.atob(encodedData);

// 或者(浏览器或js Worker线程中):

var decodedData = self.atob(encodedData);

// 例如:

window.atob(‘eGlhb21hYnVoZWk=‘);

// 返回:‘xiaomabuhei‘

解码:

// 浏览器中:

var encodedData = window.btoa(stringToEncode);

// 或者(浏览器或js Worker线程中):

var encodedData = self.btoa(stringToEncode);

//例如:

window.btoa(‘xiaomabuhei‘);

// 返回:‘eGlhb21hYnVoZWk=‘

遇到中文编码需要先做一次 URI 组件编码或对解码后的内容进行 URI 解码

window.btoa(window.encodeURIComponent(‘小马不黑‘))

// 返回 "JUU1JUIwJThGJUU5JUE5JUFDJUU0JUI4JThEJUU5JUJCJTkx"

window.decodeURI(atob(‘JUU1JUIwJThGJUU5JUE5JUFDJUU0JUI4JThEJUU5JUJCJTkx‘))

// 返回 "小马不黑"

针对 IE8 IE9 的兼容使用 polyfill

polyfill 请转移至 base-polyfill

借助FileReader对象和readAsDataURL方法,我们可以把任意的文件转换为Base64 Data-URI。假设我们的文件对象是file,则转换的JavaScript代码如下:

var reader = new FileReader();

reader.onload = function(e) {

// e.target.result就是该文件的完整Base64 Data-URI

};

reader.readAsDataURL(file);

读取的有以下方法可用:(IE请使用 ActiveXObject 对象操作文件)

reader.abort() // 取消文件读取操作

reader.readAsArrayBuffer() // 返回一个 ArrayBuffer 的数据对象

reader.readAsBinaryString() // 返回原始二进制数据内容 (实验性的api)

reader.readAsDataURL() // 返回 base64 内容

reader.readAsText() // 返回文本内容

// 上述方法皆对于 file 或 blob 有效

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值