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

老是记不住这两个函数,干脆写下来,比较好翻。

avascript原生的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,中国"
时间: 2024-08-10 21:28:14

javascript 使用btoa和atob来进行Base64转码和解码的相关文章

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) ; // 报错

java中Base64转码与解码(加密与解密)原理与使用

Base64是网络上最常见的用于传输8Bit字节代码的编码方式之一,大家可以查看RFC2045~RFC2049,上面有MIME的详细规范.Base64编码可用于在HTTP环境下传递较长的标识信息.例如,在Java Persistence系统Hibernate中,就采用了Base64来将一个较长的唯一标识符(一般为128-bit的UUID)编码为一个字符串,用作HTTP表单和HTTP GET URL中的参数.在其他应用程序中,也常常需要把二进制数据编码为适合放在URL(包括隐藏表单域)中的形式.此

Javascript 将图片的绝对路径转换为base64编码

Javascript将图片的绝对路径转换为base64编码 我们可以使用canvas.toDataURL的方法将图片的绝对路径转换为base64编码:在这我们引用的是淘宝首页一张图片如下: var img = "https://img.alicdn.com/bao/uploaded/TB1qimQIpXXXXXbXFXXSutbFXXX.jpg"; 我们如下编写代码: function getBase64Image(img) { var canvas = document.create

Java对图片Base64转码--HTML对Base64解码

Java对图片Base64转码 package base64; import java.awt.image.BufferedImage; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.File; import java.io.IOException; import javax.imageio.ImageIO; import sun.misc.BASE64Decod

base64转码java版

package com.net.util; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import javax.servlet.http.HttpServletRequest; import sun.misc.BASE64Decoder; i

在LoadRunner中进行Base64的编码和解码

<Base64 Encode/Decode for LoadRunner>这篇文章介绍了如何在LoadRunner中对字符串进行Base64的编码和解码: http://ptfrontline.wordpress.com/2009/09/30/base64-encodedecode-for-loadrunner/ 在头文件中封装b64_encode_string和b64_decode_string函数: /*Base 64 Encode and Decode functions for Loa

【项目分析】利用C#改写JAVA中的Base64.DecodeBase64以及Inflater解码

原文:[项目分析]利用C#改写JAVA中的Base64.DecodeBase64以及Inflater解码 最近正在进行项目服务的移植工作,即将JAVA服务的程序移植到DotNet平台中. 在JAVA程序中,有个HTTP请求数据头中,包含一个BASE64编码的字符串,例如: eJyVjMENgDAMA1fpBMjnIkp3ZzZEpAa1PLmXY10sDdqBqr54Ww5AthG7zxJYa0MYr9p7bPFnK/uqjCj06y7JfHwAX3AhhA== 现在需要将这个字符串转化成原始字

IOS开发之数据加密与解密:AES256+Base64转码

AES:高级加密标准(Advanced Encryption Standard).在密码学中又称Rijndael加密法,是美国联邦政府采用的一种区块加密标准.这个标准用来替代原先的DES,已经被多方分析且广为全世界所使用.经过五年的甄选流程,高级加密标准由美国国家标准与技术研究院(NIST)于2001年11月26日发布于FIPS PUB 197,并在2002年5月26日成为有效的标准.2006年,高级加密标准已然成为对称密钥加密中最流行的算法之一. 以上来自百度百科. 本篇采用代码的方式阐述加密

cocos2d-x 3.X 接收图片 base64 转码显示

base64是一种常见的网络传输编码方式,可以对图片.文字等格式转化为二进制流.Cocos2d中自带base64码的转码.解码函数: int cocos2d::base64Encode (const unsigned char * in, unsigned int inLength, char ** out ) int cocos2d::base64Decode (const unsigned char * in, unsigned int inLength, unsigned char **