我有一个简单的 NSString,我将其转换为 NSData :
NSData *data = [[NSData dataWithBytes:[[NSString stringWithFormat:@",%@",self.targetId] dataUsingEncoding:NSASCIIStringEncoding]
length:[[NSString stringWithFormat:@",%@",self.targetId] lengthOfBytesUsingEncoding:NSASCIIStringEncoding]] retain];
现在我想从 NSData 对象中获取纯文本。
如果我这样做:
NSString* dataStr = [NSString stringWithFormat:@"%@",data];
-我只得到一个十六进制表达式(即 <9c3f473e 02000000 0b0000>),而不是我想要的纯字符串!
我也尝试过使用 initWithData -
NSString* dataStr = [[NSString alloc] initWithData:data encoding:NSASCIIStringEncoding];
但无论我给它哪种编码,它总是显示乱码。
你能帮忙吗? :)
最佳答案
您需要将第一个代码片段简化为:
NSData *data = [[NSString stringWithFormat:@",%@",self.targetId] dataUsingEncoding:NSASCIIStringEncoding]
然后你的第二个解码片段就会起作用:
NSString* dataStr = [[NSString alloc] initWithData:data encoding:NSASCIIStringEncoding];
关于iphone - 将 NSData 转回纯文本 NSString,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4767420/