NSData to base64Encoding

转载 2012年03月25日 13:34:47

static const char encodingTable[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";

+ (NSString *)base64EncodingWithData:(NSData *)aData
{
	if ([aData length] == 0)
		return @"";
    
    char *characters = malloc((([aData length] + 2) / 3) * 4);
	if (characters == NULL)
		return nil;
	NSUInteger length = 0;
	
	NSUInteger i = 0;
	while (i < [aData length])
	{
		char buffer[3] = {0,0,0};
		short bufferLength = 0;
		while (bufferLength < 3 && i < [aData length])
			buffer[bufferLength++] = ((char *)[aData bytes])[i++];
		
		//  Encode the bytes in the buffer to four characters, including padding "=" characters if necessary.
		characters[length++] = encodingTable[(buffer[0] & 0xFC) >> 2];
		characters[length++] = encodingTable[((buffer[0] & 0x03) << 4) | ((buffer[1] & 0xF0) >> 4)];
		if (bufferLength > 1)
			characters[length++] = encodingTable[((buffer[1] & 0x0F) << 2) | ((buffer[2] & 0xC0) >> 6)];
		else characters[length++] = '=';
		if (bufferLength > 2)
			characters[length++] = encodingTable[buffer[2] & 0x3F];
		else characters[length++] = '=';	
	}
	
	return [[[NSString alloc] initWithBytesNoCopy:characters length:length encoding:NSASCIIStringEncoding freeWhenDone:YES] autorelease];
}
 
//ps:这里有一个不错的base64的库:https://github.com/tangqiaoboy/xcode_tool/tree/master/Encoding


相关文章推荐

ios7之后提供Base64的API

在IOS7之后,苹果提供了将NSData转化为Base64编码的API: /* Create an NSData from a Base-64 encoded NSString using the ...

iOS UIImage 装换成 base64字符串

转载:http://codego.net/205499/ 1. 我不知道你为什么不找你的问题这是一个非常古老的问题和可以在这里和这里找到。 不管怎么说, 您需要先添加NSData类别到您的项目,...

iOS 7: 使用Base64编解码NSData和NSString对象

http://itony.me/488.html 随着iOS7正式版推出,Apple增加了使用Base64编解码的支持。在这篇文章中我们将通过两个例子,演示使用Base64编解码NSData...

iOS 7: 使用Base64编解码NSData和NSString对象

http://itony.me/488.html 随着iOS7正式版推出,Apple增加了使用Base64编解码的支持。在这篇文章中我们将通过两个例子,演示使用Base64编解码NSData和NS...
  • xyxjn
  • xyxjn
  • 2015-05-26 15:43
  • 49302

NSData+Base64

NSData+Base64.h #import @interface NSData (Base64) + (NSData *)dataWithBase64Enc...

解决Control character in cookie value, consider BASE64 encoding your value 问题

出自:http://rwg109.iteye.com/blog/759342 项目当中用到cookie保存中文,但是会报如下错误: Control character in cookie v...

Pitfall in node crypto and base64 encoding

Base64 is a commonly used encoding for transmitting binary data in text format, although it is kind ...

ShareSDK集成报错:NSConcreteMutableData wbsdk_base64EncodedString]: unrecognized selector sent to instanc

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[NSConcreteMut...

Go实战--go中使用base64加密(The way to go)

生命不止,继续 Go go go !!!base64加密你一点也不会陌生,Base64是网络上最常见的用于传输8Bit字节代码的编码方式之一,大家可以查看RFC2045~RFC2049,上面有MIME...

image转换为base64编码

在前端优化方案中,减少HTTP请求,最常见的方法是css sprite。今天来说另一种方式,就是将小图片转换为base64码,直接在img的src中引用,这种方式不向服务器端发送HTTP请求。 但是...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)