javascript 使用btoa和atob来进行Base64转码和解码
javascript原生的api本来就支持,Base64,但是由于之前的javascript局限性,导致Base64基本中看不中用。当前html5标准正式化之际,Base64将有较大的转型空间,对于Html5 Api中出现的如FileReader Api, 拖拽上传,甚至是Canvas,Video截图都可以实现。
好了,前言说了一大堆,开发者需要重视:
一.我们来看看,在javascript中如何使用Base64转码
var str = 'javascript'; window.btoa(str)
//转码结果 "amF2YXNjcmlwdA==" window.atob("amF2YXNjcmlwdA==")
//解码结果 "javascript"
二.对于转码来说,Base64转码的对象只能是字符串,因此来说,对于其他数据还有这一定的局限性,在此特别需要注意的是对Unicode转码。
var str = "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
var str = "China,中国"; window.btoa(window.encodeURIComponent(str))
//"Q2hpbmElRUYlQkMlOEMlRTQlQjglQUQlRTUlOUIlQkQ=" window.decodeURIComponent(window.atob('Q2hpbmElRUYlQkMlOEMlRTQlQjglQUQlRTUlOUIlQkQ='))
//"China,中国"
window.btoa('{"success":true,"msg":null,"errorCode":0,"data":{"memberId":"6976462","canBxMoney":0,"bxdAsset":3000.00,"bxdProfit":95.752732}}');
"eyJzdWNjZXNzIjp0cnVlLCJtc2ciOm51bGwsImVycm9yQ29kZSI6MCwiZGF0YSI6eyJtZW1iZXJJZCI6IjY5NzY0NjIiLCJjYW5CeE1vbmV5IjowLCJieGRBc3NldCI6MzAwMC4wMCwiYnhkUHJvZml0Ijo5NS43NTI3MzJ9fQ=="
window.atob("eyJzdWNjZXNzIjp0cnVlLCJtc2ciOm51bGwsImVycm9yQ29kZSI6MCwiZGF0YSI6eyJtZW1iZXJJZCI6IjY5NzY0NjIiLCJjYW5CeE1vbmV5IjowLCJieGRBc3NldCI6MzAwMC4wMCwiYnhkUHJvZml0Ijo5NS43NTI3MzJ9fQ==")
"{"success":true,"msg":null,"errorCode":0,"data":{"memberId":"6976462","canBxMoney":0,"bxdAsset":3000.00,"bxdProfit":95.752732}}"
javascript 使用btoa和atob来进行Base64转码和解码的更多相关文章
- 使用btoa和atob来进行Base64转码和解码
		
btoa: 将普通字符串转为Base64字符串 atob: 将Base64字符串转为普通字符串 说明:window.btoa不支持汉字: ===>使用window.encodeURI ...
 - 对图片进行Base64转码和解码
		
Base64代码 base64.c #include <stdlib.h> #include <stdio.h> #include <string.h> #incl ...
 - base64转码,解码方法
		
function Base64() { // private property _keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqr ...
 - Base64转码和解码的帮助类
		
/** * 将字符串进行Base64编码 * * @param s 被编码的字符串 * @return 编码后的字符串 */ public static String encoderBASE64(St ...
 - javascript Base64转码解码
		
javascript 使用btoa和atob来进行Base64转码和解码 $scope.checkAddCookie = function() { var expireDate = new Date( ...
 - java script btoa与atob的
		
javascript原生的api本来就支持,Base64,但是由于之前的javascript局限性,导致Base64基本中看不中用.当前html5标准正式化之际,Base64将有较大的转型空间,对于H ...
 - Javascript 将图片的绝对路径转换为base64编码
		
Javascript将图片的绝对路径转换为base64编码 我们可以使用canvas.toDataURL的方法将图片的绝对路径转换为base64编码:在这我们引用的是淘宝首页一张图片如下: var i ...
 - javascript中的Base64.UTF8编码与解码详解
		
javascript中的Base64.UTF8编码与解码详解 本文给大家介绍的是javascript中的Base64.UTF8编码与解码的函数源码分享以及使用范例,十分实用,推荐给小伙伴们,希望大家能 ...
 - JavaScript对HTML字符转义与反转义(转码和解码)
		
HTML的Encode(转码)和解码(Decode)在平时的开发中也是经常要处理的,在这里总结了使用javascript处理HTML的Encode(转码)和解码(Decode)的常用方式 一.用浏览器 ...
 
随机推荐
- 怎么改变 placeholder字体颜色
			
::-webkit-input-placeholder{color: #888}::-moz-placeholder{color: #888}:-moz-placeholder{color: #888 ...
 - 浮动框控制及切换、banner随机数js
			
1.浮动置控制及切换 <div class="banner1"></div><div class="bot_banner"> ...
 - guava学习--事件驱动模型
			
转载:http://www.cnblogs.com/whitewolf/p/4132840.html http://www.cnblogs.com/peida/p/EventBus.html 更好 ...
 - PHP 时间 date,strtotime ,time计算1970开始的第几天
			
首先,需要看你的php时区配置参数 方式1:更改php配置文件,然后从其fast-cgi或者php调用的地方: 方式2:date_default_timezone_set('PRC'); date函数 ...
 - DbUtils常用API的使用 方便以后查阅
			
package com.lizhou.Test; import java.sql.SQLException; import java.util.List; import java.util.Map; ...
 - CodeForces #367 div2 D Trie
			
题目链接:Vasiliy's Multiset 题意:这里有一个set容器,有三种操作,+ num, - num, ? num,分别代表往容器里加上num,或者拿走num,或着从容器里找一个数temp ...
 - Linux(Ubuntu) 和 Python 常用命令
			
Linux: pwd: check current directory touch f1 f2 f3: create three empty files tree dir/: show the lev ...
 - SVG 2D入门13 - svg对决canvas
			
到目前为止,SVG与Canvas的主要特性均已经总结完毕了.它们都是HTML5中支持的2D图形展示技术,而且均支持向量图形.现在,我们就来比对一下这两种技术,分析一下它们的长处和适用场景.首先分析一下 ...
 - C++ 构造与析构函数
			
这两个概念并不对等,构造函数可以完全控制成员构造过程(通过初始化列表),析构函数准确说应该叫析构之前被调用的函数 一般不应该手动调用析构函数:栈区对象会自动析构,堆区也是在delete的时候析构 有一 ...
 - 命令参数解析库JCommonder
			
1.JCommander 是一个非常小的Java 类库,用来解析命令行参数. 2.参数类型:可以是任意类型,但我使用的只有 List,String. @Parameter(name="-s& ...