概述

将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编码,可以解决这个问题,

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 不属于任何标准.

浏览器兼容性

Feature Chrome Firefox (Gecko) Internet Explorer Opera Safari (WebKit)
Basic support (Yes) (Yes) 10+ (Yes) (Yes)

window.btoa相关推荐

  1. window.atob()与window.btoa()方法实现编码与解码

    转载于https://www.cnblogs.com/moqiutao/p/6280099.html 文章目录 window.atob() 与window.btoa() Unicode 字符串 dec ...

  2. 如何使用window.btoa base64对接口数组进行加密处理

    大家好,我是孙叫兽,前端全栈工程师,uniapp技术交流群:1149933135 项目采用uniapp+uView开发: uiapp官方文档:https://uniapp.dcloud.io/ uvi ...

  3. 前端html的base64使用方法window.btoa()和window.atob()

    前端用base64加密和解密的使用方法,只需要两个函数就可以了.一个是加密:window.btoa(),一个是解密:window.atob(),看例子: <html><head> ...

  4. window.btoa与window.atob

    window.btoa(字符串);//base64->ascii window.atob(字符串);//ascii->base64

  5. js基础 -- window.btoa和window.atob使用详解.md

    欢迎访问我的个人博客:http://www.xiaolongwu.cn 定义 atob() 解码一个Base64字符串. btoa() 从一个字符串或者二进制数据编码一个Base64字符串. 用法 只 ...

  6. base64和普通字符串互转---window.btoa window.atob;图片的base64格式

    目录 一.作用 二.使用方法 一.作用 将非ASCLL码数据转换为ASCLL码数据,便于网络传输(某些系统仅支持ASCLL编码): 二.使用方法 1)测试代码: //window.btoa(" ...

  7. window.btoa()方法;使字符编码成base64的形式

    atob() 函数能够   解码  通过base-64编码的字符串数据.相反地, btoa() 函数能够从二进制数据"字符串" 创建 一个base-64编码的ASCII字符串. 转 ...

  8. window.btoa/window.atob

    Summary Creates a base-64 encoded ASCII string from a "string" of binary data. Please note ...

  9. JavaScript window对象之atob()和btoa()

    javascript原生的api本来就支持Base64,但是由于之前的javascript局限性,导致Base64基本中看不中用.当前html5标准正式化之际,Base64将有较大的转型空间,对于Ht ...

最新文章

  1. 基于感知能力的点云实例分割
  2. java源码之HashMap和HashTable的异同
  3. 让Windows 2000/XP系统自动登陆
  4. Python爬虫开发:opener的使用案例
  5. 3种纯CSS实现中间镂空的12色彩虹渐变圆环方法
  6. 常用注入 Script 方法
  7. 银联分账与银联代付_第三方分账系统到底有哪些作用?
  8. 中国风国潮PNG免扣素材|瞬间提升韵味的书法字体
  9. undefined reference to `dlclose‘问题解决方法
  10. Word 2003中打开最近操作过的文档的两种推荐的方法
  11. python画图代码-Python实战小程序利用matplotlib模块画图代码分享
  12. 诡异的json包含bom头
  13. keytool-JDK导入证书
  14. C++ 实现CRC循环冗余校验码
  15. 容错性设计原则(一)
  16. switch好玩吗_Switch上有什么好玩的游戏_第三方游戏有什么值得推荐的
  17. Codingame平台“CHUCK NORRIS”的实现
  18. 最新微信hook3.0二次开发C#源码介绍
  19. ORB-SLAM2栅格地图构建
  20. yv12、I420、nv12、nv21相互转换

热门文章

  1. cass3d基础版_v1.1_仪表不凡说表:N厂“一劳永逸”V11版实至名归!
  2. linux eth0 device not found,nVidia集成驱动已经安装了,但是Device not found,我的网卡怎么用呢?...
  3. 怎么给网站加js_网站站内SEO优化实操细节详解,权重上升嗖嗖的
  4. openCV实战(一):rectangle函数使用
  5. 多视图几何总结——基础矩阵、本质矩阵和单应矩阵的求解过程
  6. 【通知】有三个人指导以及VIP星球6月份之后升级,你的专属AI顾问了解一下
  7. 【每周CV论文推荐】 人脸识别剩下的难题:从遮挡,年龄,姿态,妆造到亲属关系,人脸攻击...
  8. 安全中间件与应用服务间如用session
  9. c语言多维数组指针地址讲解,C语言入门之多维数组的指针变量
  10. 2018年春阅读计划---阅读笔记5