5

我知道这已经被问过了,我已经遵循了几种方法,但它们不起作用。

以下是我已经尝试过的:

NSString *newStr = [NSString stringWithUTF8String:[responseData bytes]];
NSString *newStr = [NSString stringWithFormat:@"%.*s", [responseData length], [responseData bytes]];

它们都不起作用。在第一种情况下,它用 null 填充 newStr。第二,它充满了垃圾字符。我从调试器日志(po responseData)中知道我得到了有效的响应,就像 bbbbbb 00 bbbbbb。[服务器将它们作为字节数组发送]

该怎么办?

编辑:我正在从 http 请求响应中接收这些数据 - 使用 ASIHTTPRequest 库,以防有人可以在那条线上提供帮助。

4

6 回答 6

13

试试这个,

NSData *responseData; [Initialize it]
NSString *receivedDataString = [[NSString alloc] initWithData:responseData encoding:NSUTF8StringEncoding]; 
NSLog(@"%@",receivedDataString);
于 2013-01-22T11:18:10.630 回答
3

请尝试以下代码

NSString *string = [[[NSString alloc] initWithData: responseData.bytes encoding:NSUTF8StringEncoding] autorelease];
于 2013-01-22T10:59:51.567 回答
3

您可以使用此代码行

NSString *str=[[NSString alloc] initWithBytes:data1.bytes length:data1.length encoding:NSUTF8StringEncoding];
于 2013-01-22T11:00:39.310 回答
3

我发布这个是为了记录,因为我发现了一个重复并投票关闭它。

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

最后我尝试了这里给出的解决方案,我得到了我想要的。感谢所有人试图提供帮助。

于 2013-01-22T11:29:02.673 回答
2
NSString  *image1Data = [[NSData dataWithData:myData] encodeBase64ForData];

但为此,您必须使用 NSData+Base64Additions 类。

于 2013-01-22T12:12:26.710 回答
1

使用以下方式

 NSString *dC_Str = [[NSString alloc] initWithData:decryPtd_data encoding:NSASCIIStringEncoding] ;
于 2014-01-16T06:27:00.200 回答