window.btoa

概述

将ascii字符串或二进制数据转换成一个base64编码过的字符串,该方法不能直接作用于Unicode字符串.

语法

var encodedData = window.btoa(stringToEncode);

例子

var encodedData = window.btoa("Hello, world"); // 编码
var decodedData = window.atob(encodedData); // 解码

备注

由于一些网络通讯协议的限制,你必须使用该方法对原数据进行编码后,才能进行发送.接收方使用相当于window.atob 的方法对接受到的base64数据进行解码,得到原数据.例如, 发送某些含有ASCII码表中0到31之间的控制字符的数据.

在用javascript编写XPCOM组件时, btoa()方法也是可用的,虽然全局对象已经不是 window 了.

Unicode 字符串

在各浏览器中,使用 window.btoa 对Unicode字符串进行编码都会触发一个字符越界的异常.

先把Unicode字符串转换为UTF-8编码,可以解决这个问题, 代码来自Johan Sundstr?m:

function utf8_to_b64( str ) {
    return window.btoa(unescape(encodeURIComponent( str )));
}

function b64_to_utf8( str ) {
    return decodeURIComponent(escape(window.atob( str )));
}

// Usage:
utf8_to_b64(‘? à la mode‘); // "4pyTIMOgIGxhIG1vZGU="
b64_to_utf8(‘4pyTIMOgIGxhIG1vZGU=‘); // "? à la mode"
//译者注:在js引擎内部,encodeURIComponent(str)相当于escape(unicodeToUTF8(str))
//所以可以推导出unicodeToUTF8(str)等同于unescape(encodeURIComponent(str))

规范

DOM Level 0 不属于任何标准.

浏览器兼容性

转自:https://developer.mozilla.org/zh-CN/docs/Web/API/WindowBase64/btoa

时间: 2024-11-09 00:38:02

window.btoa的相关文章

使用window.btoa和window.atob来进行Base64编码和解码

方法描述 WindowBase64.atob() 函数用来解码一个已经被base-64编码过的数据. WindowBase64.btoa() 函数 将ascii字符串或二进制数据转换成一个base64编码过的ASCII字符串,该方法不能直接作用于Unicode字符串. window.atob: a ==> bwindow.btoa: b ==> a 你可以使用 window.btoa() 方法来编码一个可能在传输过程中出现问题的数据,并且在接受数据之后,使用 window.atob() 方法来

window.btoa 和 window.atob

前一段时间被安全部门查出,明文传递密码,被要求整改. 然后就进行了引入了第三方的base64编码的js库,进行了编码然后传递. 其实在前端的加密都是寻求一个心理安慰,作用是微乎其微的,确实也更加好那么一点. 今天在看 filer 无意看到了 btoa和atob. 这不就是内置的base64编码和解码么,那么接下来有两个问题 兼容性和中文的支持情况 兼容性 兼容性IE10以上和其他浏览器都支持,还是相对不错的,要是移动端都支持. 借两张 MDN的图片,要是真遇到IE怎么办,引入polyfill库,

javascript 使用btoa和atob来进行Base64转码和解码

老是记不住这两个函数,干脆写下来,比较好翻. avascript原生的api本来就支持,Base64,但是由于之前的javascript局限性,导致Base64基本中看不中用.当前html5标准正式化之际,Base64将有较大的转型空间,对于Html5 Api中出现的如FileReader Api, 拖拽上传,甚至是Canvas,Video截图都可以实现. 好了,前言说了一大堆,开发者需要重视: 一.我们来看看,在javascript中如何使用Base64转码 var str = 'javasc

window.atob

概述 WindowBase64.atob() 函数用来解码一个已经被base-64编码过的数据.你可以使用 window.btoa() 方法来编码一个可能在传输过程中出现问题的数据,并且在接受数据之后,使用 window.atob() 方法来将数据解码.例如:你可以把ASCII里面数值0到31的控制字符进行编码,传输和解码.关于针对Unicode或者UTF-8的应用方面,请查看 this note at Base64 encoding and decoding  和 this note at w

javascript使用btoa和atob来进行Base64转码和解码

javascript中如何使用Base64转码 let str = 'javascript'; let btoaStr = window.btoa(str); //转码结果 amF2YXNjcmlwdA== console.log(btoaStr); console.log(window.atob(btoaStr)); //解码结果 javascript Base64转码的对象只能是字符串, var str = "China,中国"; window.btoa(str) ; // 报错

前端JS脚本将网页表格导出为Excel

话不多说,上代码! <!DOCTYPE> <html> <head> <title>Excel Test</title> </head> <body> <div style="width:100%;padding:40px;"> Excel Test </div> <table id="excel"> <tr> <td>Na

某大神C#框架后台发送信息的查找及破解

最近在博客园瞎逛的时候,发现了某个大神发布的一个c#框架,一看框架,叫牛逼框架,嗯,装B效果太好了,界面很炫,虽然有很多的组件还是不怎么完善,但是,已经可以初步运用于项目了. 先来看看界面:   在进行测试的时候,用浏览器进行测试的时候,发现一个问题,就是该程序会主动向后台发送一些信息.信息如下: 1.http://www.nfine.cn:8099/NFineWatch/signalr/hubs  2.http://www.nfine.cn:8099/NFineWatch/signalr/ne

原生JavaScript 导出excel表格(兼容ie和其他主流浏览器)

因同事的需求是想前端导出excel表格,网上找了一些demo,自己修改了一下,可能以后会用到,记录下来吧,兼容ie和一些主流浏览器,ie可能会报错,原因参考 这里,edge 浏览器还没有办法导出,正在尝试... <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <title>table 导出excel表格</title>

js导出execl兼容ie Chrome Firefox各种主流浏览器(js export execl)

第一种导出table布局的表格 <html> <head> <meta charset="utf-8"> <script type="text/javascript" language="javascript"> var idTmr; function getExplorer() { var explorer = window.navigator.userAgent; //ie if(explore