1.什么是Base64Base64是一种基于64位可打印字符来表示二进制数据的编码方式,也就是二进制数据到字符的过程。原则上,计算机中的所有内容都是以二进制形式存储的,因此所有内容(包括文本、音频、视频、图片等)都可以用base64表示。2、Base64编码原理Base64编码之所以称为Base64,是因为它使用64个字符对任意数据进行编码。同样,还有Base32和Base16编码。标准Base64编码使用的64个字符是:最后两个字符有点特殊。由于最后两个字符的选择不同,所以Base64编码也有很多变体,比如用于对URL进行编码的Base64URL编码。Base64编码本质上是一种将二进制数据转换为文本数据的方案。对于非二进制数据,先将其转化为二进制形式,然后每连续6位(2的6次方=64)计算其十进制值,根据值在上述索引表中找到对应的字符,并最后得到一个文本字符串。假设我们要对Hello!进行Base64编码,根据ASCII表,转换过程如下图所示:可以看出Hello!的Base64编码结果。为SGVsbG8h,每3个原始字符经过Base64编码后变成4个字符。那么,原字符串长度不能被3整除怎么办?拿你好!!举个例子,转换过程是:你好!!Base64编码结果为SGVsbG8hIQAA。可以看出,当它不能被3整除时,会用它补0来完成编码。需要注意的是,标准的Base64编码通常使用=字符来代替最后的A,即编码结果为SGVsbG8hIQ==。因为=字符不在Base64编码索引表中,其意义在于结束符号。Base64解码时遇到=,就可以知道一个Base64编码的字符串结束了。3.base64编码应用对于前端而言,对于一些简单的图片,为了减少外部资源的加载,减少页面加载时间,可以使用base64将图片编码成字符串,直接嵌入在页面中。这种内嵌方法的实现得益于大部分浏览器对DataURIscheme特性的支持,该特性通常在CSS设置背景图片时使用,其格式为:background:url(data:filetype;encodingmethod,encoded文件内容);也可以通过img标签嵌入图片:
