js的base64和文本字符串之间互转
来源:互联网 发布:淘宝购物后领取淘金币 编辑:程序博客网 时间:2024/06/06 07:10
/** Convert data (an array of integers) to a Base64 string. */ var toBase64Table = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'; var base64Pad = '='; function toBase64(data) { var result = ''; var length = data.length; var i; // Convert every three bytes to 4 ascii characters. for (i = 0; i < (length - 2); i += 3) { result += toBase64Table[data.charCodeAt(i) >> 2]; result += toBase64Table[((data.charCodeAt(i) & 0x03) << 4) + (data.charCodeAt(i + 1) >> 4)]; result += toBase64Table[((data.charCodeAt(i + 1) & 0x0f) << 2) + (data.charCodeAt(i + 2) >> 6)]; result += toBase64Table[data.charCodeAt(i + 2) & 0x3f]; } // Convert the remaining 1 or 2 bytes, pad out to 4 characters. if (length % 3) { i = length - (length % 3); result += toBase64Table[data.charCodeAt(i) >> 2]; if ((length % 3) == 2) { result += toBase64Table[((data.charCodeAt(i) & 0x03) << 4) + (data.charCodeAt(i + 1) >> 4)]; result += toBase64Table[(data.charCodeAt(i + 1) & 0x0f) << 2]; result += base64Pad; } else { result += toBase64Table[(data.charCodeAt(i) & 0x03) << 4]; result += base64Pad + base64Pad; } } return result; } /** Convert Base64 data to a string */ var toBinaryTable = [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 62, -1, -1, -1, 63, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, -1, -1, -1, 0, -1, -1, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, -1, -1, -1, -1, -1, -1, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, -1, -1, -1, -1 ]; function base64ToString(data) { var result = ''; var leftbits = 0; // number of bits decoded, but yet to be appended var leftdata = 0; // bits decoded, but yet to be appended // Convert one by one. for (var i = 0; i < data.length; i++) { var c = toBinaryTable[data.charCodeAt(i) & 0x7f]; var padding = (data.charCodeAt(i) == base64Pad.charCodeAt(0)); // Skip illegal characters and whitespace if (c == -1) continue; // Collect data into leftdata, update bitcount leftdata = (leftdata << 6) | c; leftbits += 6; // If we have 8 or more bits, append 8 bits to the result if (leftbits >= 8) { leftbits -= 8; // Append if not padding. if (!padding) result += String.fromCharCode((leftdata >> leftbits) & 0xff); leftdata &= (1 << leftbits) - 1; } } // If there are any bits left, the base64 string was corrupted if (leftbits) throw Components.Exception('Corrupted base64 string'); return result; } //toBase64() 将字符串转换为base64 //base64ToString() 将base64 转换为字符串
0 0
- js的base64和文本字符串之间互转
- js 字符串转base64
- python06 字符串和文本
- 字符串和文本IO
- [00100] 字符串和文本
- 字符串和文本IO
- js中过滤输入框,和文本域中的特殊字符串。
- base64实现文件与字符串之间的转换(转)
- js 中文字符串转base64
- 图片与Base64之间的互转
- java BASE64与字符串之间的转换
- base64字符串与图片之间的转化
- base64操作照片字符串之间的转换
- base64字符串与图片之间的转换
- Base64处理byte[ ]和base64字符串之间的转换
- 信息编码:字符串和文本
- 字符、字符串和文本处理
- 习题6 字符串和文本
- 171. Excel Sheet Column Number(C++)
- 大小写字母转化
- mac下快速挂在实验室工作盘和远程登录脚本
- Sublime Text编写C\C++程序
- NJCTF2017 web getflag(详解)
- js的base64和文本字符串之间互转
- boost::asio 异步主动连接多个服务器
- n-1位数
- Skynet基础入门例子详解(1)
- CocoaPods安装和使用教程
- 那么,就从今天开始记录自己的Java/Android爬坑之路吧。
- Kafka 基本特性
- PATL2-002. 链表去重。细心,格式
- 剑指Offer系列-面试题39:二叉树的深度