关闭

js原生Base64转码和解码函数btoa和atob的使用

时间: 2018-10-25阅读: 3048标签: base64

定义

atob():解码一个Base64字符串。
btoa():从一个字符串或者二进制数据编码一个Base64字符串。


兼容性

window.btoa和window.atob在现代浏览器中受到广泛的支持。  支持浏览器如下:

IE:10+
Chrome:4+
Firefox:2+
Safari:3.1+
Opera:11.5+  


使用

只有字符串才能被转换。码位须在 0x00 ~ 0xFF 范围

1.默认转换 ASCII字母和数字,不支持中文

// 转base64
var aa = btoa("dddddddd");
// 转码结果 "ZGRkZGRkZGQ="

// 解码结果
var bb  = atob(aa);
// 解码结果 "dddddddd"

// 注意,如果想转换中文会直接报错,具体方法见下文
// 中文转换base64
var cc = btoa("哈哈");
// 直接报错 VM275:1 Uncaught SyntaxError: Invalid or unexpected token


2.转换中文的方法

// 先将中文转换为URL组件格式,再转为base64形式的
var dd = btoa(encodeURIComponent("哈哈"));
// 结果 "JUU1JTkzJTg4JUU1JTkzJTg4"

// 注意解析时就需要先解码为URL组件格式,再转换为中文,就是先进后出的原则
var ff = decodeURIComponent(atob(dd));
// 结果 "哈哈"


为了考虑兼容性,就需要我们封装一个base64方法,该如何实现呢?请参考之前的一篇文章,地址:http://www.fly63.com/article/detial/390


站长推荐

1.云服务推荐: 国内主流云服务商,各类云产品的最新活动,优惠券领取。地址:阿里云腾讯云华为云

2.广告联盟: 整理了目前主流的广告联盟平台,如果你有流量,可以作为参考选择适合你的平台点击进入

链接: http://www.fly63.com/article/detial/1189

关闭

base64原理浅析

为什么图片转成Base64编码,就可以直接内联到HTML中显示呢?为什么Base64编码后,体积会增大1/3呢?如果你对此也有疑问的话,就往下一看究竟吧。

使用base64编码在页面嵌入图片

因为页面中插入一个图片都要写明图片的路径——相对路径或者绝对路径。而除了具体的网站图片的图片地址,如果是在自己电脑文件夹里的图片,当我们的HTML文件在别人电脑上打开的时候图片则由于地址不对或者没有将图片

图片上传转base64

做的过程中本来想用taro-ui里的那个图片上传,但是样式想自定义没搞定,结果后来就用Taro.chooseImage了。h5模式返回的是一个blob对象,然后自己转成base64了。微信小程序自己有方法。原来想用multipart的方式

Base64 编码与解码详解

Base64 是基于 64 个可打印字符 A-Z、a-z、0-9、+、/ 来表示二进制数据的表示方法,常用于数据在网络中的传输。本篇将分别介绍其编码、解码以及实际运用。

利用PHP将图片转换成base64编码的实现方法

base64是当前网络上最为常见的传输8Bit字节代码的编码方式其中之一。base64主要不是加密,它主要的用途是把某些二进制数转成普通字符用于网络传输。由于这些二进制字符在传输协议中属于控制字符,不能直接传送,所以需要转换一下

js实现字符串/base64的编码和解码

JavaScript对字符串/base64的编码和解码;Base64其实是一种简单的置换加密方式,但是BASE64的用处往往并不是为了防止信息泄露,而且为了方便传输,进过BASE64编码后的信息会比原始信息长,大概是4/3倍。

base64编码

二进制的数据,每个字符的取值范围都是 [0, 255] ,作为ascii码解析时,只有部分可打印。比如,我用文本编辑器vim打开一张jpeg图片,会发现内容是乱码。

图片保存到本地_原生js实现base64图片下载

在项目开发过程中,经常会有图片导出的需求,原生js实现base64图片下载实现思路:需要创建a标签,然后把base64的图片转为为blob对象,再通过URL.createObjectURL方法复制给a标签的href属性,最后添加添加事件的方法。

原生js实现base64编码方法

base64是一种图片编码方式,用一长串超长的字符串表示图片,在加载的时候会直接以字符串的形式加载出来,减少了图片加载的http请求,正常加载服务器静态资源的时候都应该是通过http请求回来,每加载一张图片时需要发起一次http请求

Angular中实现文件转BASE64

这是一个so easy的问题,主要是记录一下angular 的模板变量的使用和组件中匿名方法 ,箭头方法使用的区别;如何将模板中的 DOM对象作为参数传入方法?

点击更多...

内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权或违规,请与小编联系!情况属实本人将予以删除!