Iphone 如何将NSData转换为NSString

Iphone 如何将NSData转换为NSString,iphone,ios,nsstring,nsdata,Iphone,Ios,Nsstring,Nsdata,我知道以前有人问过这个问题,我已经采用了两种方法,但都不起作用 以下是我已经尝试过的: NSString *newStr = [NSString stringWithUTF8String:[responseData bytes]]; NSString *newStr = [NSString stringWithFormat:@"%.*s", [responseData length], [responseData bytes]]; 它们都不起作用。在第一种情况下,它用null填充newStr。

我知道以前有人问过这个问题,我已经采用了两种方法,但都不起作用

以下是我已经尝试过的:

NSString *newStr = [NSString stringWithUTF8String:[responseData bytes]];
NSString *newStr = [NSString stringWithFormat:@"%.*s", [responseData length], [responseData bytes]];
它们都不起作用。在第一种情况下,它用null填充newStr。第二,它填充了垃圾字符。我从调试器日志(po responseData)中知道我得到了有效的响应,类似于bbbb 00 bbbbbbbbbb。[服务器将它们作为字节数组发送]

怎么办

编辑:
我正在从http请求-响应接收此数据-使用ASIHTTPRequest库,以防任何人在这方面提供帮助。

请尝试以下代码

NSString *string = [[[NSString alloc] initWithData: responseData.bytes encoding:NSUTF8StringEncoding] autorelease];

您可以使用此代码行

NSString *str=[[NSString alloc] initWithBytes:data1.bytes length:data1.length encoding:NSUTF8StringEncoding];
试试这个

NSData *responseData; [Initialize it]
NSString *receivedDataString = [[NSString alloc] initWithData:responseData encoding:NSUTF8StringEncoding]; 
NSLog(@"%@",receivedDataString);

为了记录起见,我发布了这篇文章,因为我发现了一个问题,并投票决定关闭这篇文章

实际上,我接收到的是一个以十六进制表示的字节流,所有指示的答案都不起作用。只有[NSData description]提供了真实的数据,这是我无法使用的,因为它是用于调试的

最后我尝试了给出的解决方案,得到了我想要的。 谢谢大家的帮助

NSString  *image1Data = [[NSData dataWithData:myData] encodeBase64ForData];
但为此,必须使用NSData+Base64Additions类。

使用以下方法

 NSString *dC_Str = [[NSString alloc] initWithData:decryPtd_data encoding:NSASCIIStringEncoding] ;

试试这个我已经试过上面提到的解决方案了。你检查过你的NSData是否为空吗?用
responseData
而不是
[responseData bytes]
@c.cam108-试一下第一行。你的数据是什么?我从一个正在工作的项目中得到了这个字符串,它工作得很好。也许你的数据编码不是UTF8?