关于base64转码
一、计算机开始之初,Hex
Hex的编码原理是:把一长串二进制数每4个分一组,如果位数不够就在高位补0。4位数字一共只有16种情况,分别用0-9,A-F表示这16种情况。
二、ASCII码
美国信息交换标准代码,简称ASCII码表;这个码表包括了数字、英文大小写、符号、以及各种各样的转义字符,可以包含英文所用的全部功能。很快地,ASCII码称为了国际标准,现在大家知道的编码形式,都是与ASCII码兼容的。
三、UTF-8
这个编码又称为万国码,顾名思义,就是支持包括中文简体、中文繁体、日语、韩语等各种语言的编码;
四、base64编码
既然每个国家都有自己的编码表了,问题也就来了,我要用一个支持本国语言的编码系统,打开另一个编码系统编码的文本,这就是乱码了… 随着互联网的出现,各个国家的电脑都需要通信,而通信的一种方式就是使用URL地址。每个国家都希望把这个地址写成自己国家的语言。但这会导致其他国家根本没法访问地址,因为打不出这个字符嘛。所以,人类迫切需要一种中间编码形式,既能够兼容ASCII码,又能够把任意一种编码形式转换成只使用可读字符就能表示的编码。其中一种编码形式,就是Base64编码。
Base64编码,用64个可读字符进行编码。与Hex的16个字符相比多了很多,但是比ASCII码又少了一倍,去除了不可读字符。标准Base64编码中,这些字符是:
- 数字:0,1,2,3,4,5,6,7,8,9,共10个
- 小写字母:a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,共26个
- 大写字母:A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,共26个
- 加好+以及斜杠/
五、base64加密、解密
var decodedData = window.atob(encodedData);// base64转普通字符
var encodedData = window.btoa(stringToEncode); //普通字符转base64
中文base64转码会有报错问题,可以先用中文encode转码和decode编码
window.btoa(window.encodeURIComponent('嘻嘻哈哈哈哈啦啦啦啦'));
window.decodeURIComponent(window.atob('JUU1JTk4JUJCJUU1JTk4JUJCJUU1JTkzJTg4JUU1JTkzJTg4JUU1JTkzJTg4JUU1JTkzJTg4JUU1JTk1JUE2JUU1JTk1JUE2JUU1JTk1JUE2JUU1JTk1JUE2'));
最后介绍一个base64转化的插件base64.js,地址:https://github.com/dankogai/js-base64
Base64.encode(常规字符串);
Base64.decode(base64编码);
上一篇: 使用php显示搜索引擎来的关键词_PHP
下一篇: PHP实现各种排序算法