我知道之前已经问过这个问题了,我已经采用了几种方法,但它们都不起作用。
以下是我已经尝试的内容:
NSString *newStr = [NSString stringWithUTF8String:[responseData bytes]];
NSString *newStr = [NSString stringWithFormat:@"%.*s", [responseData length], [responseData bytes]];
它们都不起作用。在第一种情况下,它用null填充newStr。在第二,它填充垃圾字符。我从调试器日志(po responseData)知道我得到了有效的响应,就像bbbbbb 00 bbbbbb。 [服务器将它们作为字节数组发送]
怎么办?
编辑: 我正在从http请求响应中接收这些数据 - 使用ASIHTTPRequest库,以防任何人可以在该行上提供帮助。
答案 0 :(得分:11)
试试这个,
NSData *responseData; [Initialize it]
NSString *receivedDataString = [[NSString alloc] initWithData:responseData encoding:NSUTF8StringEncoding];
NSLog(@"%@",receivedDataString);
答案 1 :(得分:3)
您可以使用此代码行
NSString *str=[[NSString alloc] initWithBytes:data1.bytes length:data1.length encoding:NSUTF8StringEncoding];
答案 2 :(得分:3)
我发布这个是为了记录,因为我找到了duplicate并投票决定将其关闭。
实际上我收到的是一个以十六进制表示的字节流,并且所有指示的答案都不起作用。只有[NSData description]给了我真正的数据,这是我无法使用的,因为它是用于调试的。
最后,我尝试了here给出的解决方案,我得到了我想要的东西。 感谢大家帮忙。
答案 3 :(得分:2)
请尝试以下代码
NSString *string = [[[NSString alloc] initWithData: responseData.bytes encoding:NSUTF8StringEncoding] autorelease];
答案 4 :(得分:1)
NSString *image1Data = [[NSData dataWithData:myData] encodeBase64ForData];
但为此,您必须使用NSData + Base64Additions类。
答案 5 :(得分:0)
使用以下方式
NSString *dC_Str = [[NSString alloc] initWithData:decryPtd_data encoding:NSASCIIStringEncoding] ;