Base64转换的代码。
来源:互联网 发布:万网域名多少钱一年 编辑:程序博客网 时间:2024/05/22 18:03
不解释。
staticchar base64EncodingTable[64] = {
'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', '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', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '+', '/'
};
+ (NSString *) base64StringFromData: (NSData *)data length: (int)length {
unsignedlong ixtext, lentext;
long ctremaining;
unsignedchar input[3], output[4];
short i, charsonline = 0, ctcopy;
constunsigned char *raw;
NSMutableString *result;
lentext = [data length];
if (lentext < 1)
return@"";
result = [NSMutableString stringWithCapacity: lentext];
raw = [data bytes];
ixtext = 0;
while (true) {
ctremaining = lentext - ixtext;
if (ctremaining <= 0)
break;
for (i = 0; i < 3; i++) {
unsignedlong ix = ixtext + i;
if (ix < lentext)
input[i] = raw[ix];
else
input[i] = 0;
}
output[0] = (input[0] & 0xFC) >> 2;
output[1] = ((input[0] & 0x03) << 4) | ((input[1] & 0xF0) >> 4);
output[2] = ((input[1] & 0x0F) << 2) | ((input[2] & 0xC0) >> 6);
output[3] = input[2] & 0x3F;
ctcopy = 4;
switch (ctremaining) {
case 1:
ctcopy = 2;
break;
case 2:
ctcopy = 3;
break;
}
for (i = 0; i < ctcopy; i++)
[result appendString: [NSString stringWithFormat:@"%c", base64EncodingTable[output[i]]]];
for (i = ctcopy; i < 4; i++)
[result appendString:@"="];
ixtext += 3;
charsonline += 4;
if ((length > 0) && (charsonline >= length))
charsonline = 0;
}
return result;
}
- Base64转换的代码。
- OSX: 转换Plist的base64代码数据
- base64转换,c代码实现
- File Base64 的转换
- base64图片格式的转换
- base64编码的代码!
- Himi的base64代码
- DES加密+Base64转换转实现代码
- iOS image base64的转换
- Base64 UIImage之间的转换
- 文件与base64的转换
- android那些事之Bitmap、InputStream、Drawable、byte[]、Base64之间的转换关系 复制代码
- 将图片文件转换为base64格式的代码工具案例
- Base64的Java代码实现
- Base64处理byte[ ]和base64字符串之间的转换
- Bitmap和Base64之间的转换以及Base64 encode
- base64转换
- Delphi版的Base64转换函数
- java基础之字符串字母大小写转换、倒序
- ConditionVariable的用法
- ASP.NET打开新页面
- Android:android.git.kernel.org 无法访问时下载源代码的解决方法
- POJ 3270 置换群定理
- Base64转换的代码。
- 桂林电信,固话查本机号码——##118,##116
- 02_使用JDBC核心类之二
- Android下拉刷新实例
- 多米诺效应
- Andriod源码正确的编译方式
- php session 二位数组
- Lisp之根源(http://www.lispchina.com/)
- 如何在gridview中每10行记录后增加一个空行?