我有一个简单的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];
但是无论我给它采用哪种编码,它总是表现得很狡猾。
你能帮忙吗? :)
答案 0 :(得分:9)
您需要将第一个代码段简化为:
NSData *data = [[NSString stringWithFormat:@",%@",self.targetId] dataUsingEncoding:NSASCIIStringEncoding]
然后你的第二个解码片段将起作用:
NSString* dataStr = [[NSString alloc] initWithData:data encoding:NSASCIIStringEncoding];
答案 1 :(得分:1)
进行以下更改将起作用。
NSData *data = [[NSString stringWithFormat:@",%@",self.targetId] dataUsingEncoding:NSASCIIStringEncoding] ;
你做了数据的NData。