将NSData转回纯文本NSString

Guy*_*uys 5 iphone nsstring nsdata

我有一个简单的NSString,我将它转换为NSData:

NSData *data = [[NSData dataWithBytes:[[NSString stringWithFormat:@",%@",self.targetId] dataUsingEncoding:NSASCIIStringEncoding] 
                              length:[[NSString stringWithFormat:@",%@",self.targetId] lengthOfBytesUsingEncoding:NSASCIIStringEncoding]] retain];
Run Code Online (Sandbox Code Playgroud)

现在我想从NSData对象中获取纯文本.
如果我这样做:

NSString* dataStr = [NSString stringWithFormat:@"%@",data];
Run Code Online (Sandbox Code Playgroud)

- 我只得到一个十六进制表达式(即<9c3f473e 02000000 0b0000>)而不是我想要的普通字符串!

我也尝试过使用initWithData -

    NSString* dataStr = [[NSString alloc] initWithData:data encoding:NSASCIIStringEncoding];
Run Code Online (Sandbox Code Playgroud)

但无论我给出哪种编码,它总是表现得很狡猾.

你能帮忙吗?:)

gra*_*rks 9

您需要将第一个代码段简化为:

NSData *data = [[NSString stringWithFormat:@",%@",self.targetId] dataUsingEncoding:NSASCIIStringEncoding] 
Run Code Online (Sandbox Code Playgroud)

然后你的第二个解码片段将工作:

NSString* dataStr = [[NSString alloc] initWithData:data encoding:NSASCIIStringEncoding];
Run Code Online (Sandbox Code Playgroud)