Turning NSData back to plain text NSString

落爺英雄遲暮 提交于 2019-12-12 11:03:51

问题


I have a simple NSString and I'm converting it to NSData :

NSData *data = [[NSData dataWithBytes:[[NSString stringWithFormat:@",%@",self.targetId] dataUsingEncoding:NSASCIIStringEncoding] 
                              length:[[NSString stringWithFormat:@",%@",self.targetId] lengthOfBytesUsingEncoding:NSASCIIStringEncoding]] retain];

Now I want to get the plain text from the NSData object.
If I'm doing that :

NSString* dataStr = [NSString stringWithFormat:@"%@",data];

- I'm getting just an hex expression (i.e <9c3f473e 02000000 0b0000>) and not the plain string I want !

I've tried also using initWithData -

    NSString* dataStr = [[NSString alloc] initWithData:data encoding:NSASCIIStringEncoding];

But it always shows gibrish, no matter which encoding I give it.

Can you please help here ?? :)


回答1:


You need to simplify your first code snippet to:

NSData *data = [[NSString stringWithFormat:@",%@",self.targetId] dataUsingEncoding:NSASCIIStringEncoding] 

And then your second decoding snippet will work:

NSString* dataStr = [[NSString alloc] initWithData:data encoding:NSASCIIStringEncoding];



回答2:


Do following change it will work.

NSData *data = [[NSString stringWithFormat:@",%@",self.targetId] dataUsingEncoding:NSASCIIStringEncoding] ;

You did NData of data.



来源:https://stackoverflow.com/questions/4767420/turning-nsdata-back-to-plain-text-nsstring

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!