在线 Base64 编/解码小工具

抽时间做了一个简单的基于 JavaScript 的在线 Base64 编/解码小工具: http://www.planabc.net/lab/tools/base64.html 原理详见上篇文章:《JavaScript 中的 Base64 编码(一):Encoding 》 注:对于下面的代码: TWFuIGlzIGRpc3Rpbmd1aXNoZWQsIG5vdCBvbmx5IGJ5IGhpcyByZWFzb24sIGJ1dCBieSB0aGlz IHNpbmd1bGFyIHBhc3Npb24gZnJvbSBvdGhlciBhbmltYWxzLCB3aGljaCBpcyBhIGx1c3Qgb2Yg dGhlIG1pbmQsIHRoYXQgYnkgYSBwZXJzZXZlcmFuY2Ugb2YgZGVsaWdodCBpbiB0aGUgY29udGlu dWVkIGFuZCBpbmRlZmF0aWdhYmxlIGdlbmVyYXRpb24gb2Yga25vd2xlZGdlLCBleGNlZWRzIHRo ZSBzaG9ydCB2ZWhlbWVuY2Ugb2YgYW55IGNhcm5hbCBwbGVhc3VyZS4= 各浏览器原生的解码方法处理不太一致,Opera 比较智能能够处理此情形,但 Firefox、Safari 和 Chrome 却无法处理。 出现上面代码的原因为:规则约定 Base64 编码过程每76个字符加一个换行符。 Firefox、Safari 和 Chrome 下的修复非常简单(对输入的字符去除换行符等): text = text.replace(/\s*/g, ”... 6 条评论 »

JavaScript 中的 Base64 编码(一):Encoding

除了IE浏览器,其他所有主流的浏览器均支持原生的 Base64 编码: btoa(text) – base64 encodes text. atob(text) – base64 decodes text. 而对于 IE 我们可以根据已知的 Base64 编码原理进行编写: Base64 编码将每三个 8Bit 的字节(注:由于要求输入的字符为 8Bit 字节,故范围应该在 ASCII 字符范围内,即:\u0000-\u00ff)转换为四个 6Bit 的字节(3*8 = 4*6 = 24),然后在每个 6Bit 字节前添两位高位 0,组成四个 8Bit 的字节,最后再将每个 8Bit 字节转换成十进制的数字,对应 Base64 编码表(为了保证所输出的编码为可读字符,Base64制定了一个编码表,以便进行统一转换,编码表的大小为 2^6=64,即 Base64 名称的由来)输出编码后的字符。 如果原字节不足 3 的倍数,则用 0 填充,输出字符使用“=”,因此编码后输出的文本末尾可能会出现 1 或 2 个“=”(余数 = 原文字节数 ... 4 条评论 »