java script btoa与atob的

摘要:
javascript的本机API最初支持Base64,但由于之前的javascript限制,Base64基本上是无用的。好吧,前言已经描述了很多Base64转码和解码的方法:1.让我们看看如何在javascript中使用Base64转编码?1234567varstr='javascript';窗btoa//转码结果“amF2YXNjcmlwdA==”窗口。atob//解码结果“javascript”II对于代码转换,Base64代码转换的对象只能是字符串。因此,其他数据存在一定的限制。这里,应特别注意Unicode转码。?123456varstr=“中国,中国”;window.btoa//“Q2hpbmElRUYlQkMlOEMlRTQlQjglQUQlRTUlOUIlQkQ=”窗口。DecodeURIComponent//“China,China”btoa和atob的用法非常简单,您可以尝试一下。

javascript原生的api本来就支持,Base64,但是由于之前的javascript局限性,导致Base64基本中看不中用。当前html5标准正式化之际,Base64将有较大的转型空间,对于Html5 Api中出现的如FileReader Api, 拖拽上传,甚至是Canvas,Video截图都可以实现。

好了,前言说了一大堆,Base64转码和解码有哪些方法:

一.我们来看看,在javascript中如何使用Base64转码

1
2
3
4
5
6
7
varstr = 'javascript';
window.btoa(str)
//转码结果 "amF2YXNjcmlwdA=="
window.atob("amF2YXNjcmlwdA==")
//解码结果 "javascript"

二.对于转码来说,Base64转码的对象只能是字符串,因此来说,对于其他数据还有这一定的局限性,在此特别需要注意的是对Unicode转码。

1
2
varstr = "China,中国"
window.btoa(str)

Uncaught DOMException: Failed to execute 'btoa' on 'Window': The string to be encoded contains characters outside of the Latin1 range.

很明显,这种方式是不行的,那么如何让他支持汉字呢,

这就要使用window.encodeURIComponent和window.decodeURIComponent

1
2
3
4
5
6
varstr = "China,中国";
window.btoa(window.encodeURIComponent(str))
//"Q2hpbmElRUYlQkMlOEMlRTQlQjglQUQlRTUlOUIlQkQ="
window.decodeURIComponent(window.atob('Q2hpbmElRUYlQkMlOEMlRTQlQjglQUQlRTUlOUIlQkQ='))
//"China,中国"

btoa与atob的使用方法就是这么简单,大家可以尝试一下。希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持脚本之家!

原文链接:http://www.jb51.net/article/108957.htm

免责声明:文章转载自《java script btoa与atob的》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Qt加载lib、dll的几种方式【转】路由器设置及路由级联设置教程下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

openssl enc 加解密

介绍 enc - 对称加密例程,使用对称密钥对数据进行加解密,特点是速度快,能对大量数据进行处理。算法有流算法和分组加密算法,流算法是逐字节加密,数据经典算法,但由于其容易被破译,现在已很少使用;分组加密算法是将数据分成固定大小的组里,然后逐组进行加密,比较广为人知的是DES3。分组算法中又有ECB,CBC,CFB,OFB,CTR等工作模式,其中默认选C...

C#上传视频等大文件

最近遇见一个需要上传超大大文件的需求,调研了七牛和腾讯云的切片分段上传功能,因此在此整理前端大文件上传相关功能的实现。 在某些业务中,大文件上传是一个比较重要的交互场景,如上传入库比较大的Excel表格数据、上传影音文件等。如果文件体积比较大,或者网络条件不好时,上传的时间会比较长(要传输更多的报文,丢包重传的概率也更大),用户不能刷新页面,只能耐心等待请...

javascript base64 编码,兼容ie6789

用Javascript进行base64编码,在高版本的IE浏览器(IE9以上版本),和firefox,chrome浏览器里是非常方便的。这些浏览器的window对象中内置了base64的编码和解码方法。 var base64String = window.btoa(string) ;//编码 var string = window.atob(base64s...

【前端】加载的图片太多或者太大优化方案(上)

摘要 web性能的终极目标是减少资源到客户端的延迟,但是我们在HTTP1.0/HTTP1.1协议中经常会遇到加载的图片太多或者太大导致页面加载完成慢的问题:图片太多导致向服务器请求的次数太多,图片太大导致每次请求的时间过长. 本篇将针对图片太多或者太大总结几种优化方案. 一.当图片太多时 方案一:将图片服务和应用服务分离(从架构师的角度思考) 对于这个方案...

点击a标签下载当前链接的图片&&js 通过 blob 类文件对象下载图片,修改图片保存的名字(兼容式写法)

若想点击a标签就下载当前链接的图片,首先必须文件是同源的,在a标签上增加download属性,才能触发点击下载的效果,若不同源的话则变成在当前页面打开该图片了。 若想要下载不同源的文件,有一种思路是将图片转为base64再赋值给a标签,这样点击后应该就能够下载了 问题:通过a标签下载图片,只有谷歌浏览器和火狐浏览器才支持 通过iframe的方式下载图片的时...

富文本编辑器直接粘贴图片实现

由于工作需要必须将word文档内容粘贴到编辑器中使用 但发现word中的图片粘贴后变成了file:///xxxx.jpg这种内容,如果上传到服务器后其他人也访问不了,网上找了很多编辑器发现没有一个能直接解决这个问题 考虑到自己除了工作其他时间基本上不使用windows,因此打算使用nodejs来解决这一问题 发现不管什么编辑器只要将图片转换成base64后...