将 NSData 转回纯文本 NSString [英] Turning NSData back to plain text NSString

查看:44
本文介绍了将 NSData 转回纯文本 NSString的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个简单的 NSString 并且我正在将它转换为 NSData :

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];

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

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

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

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

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

我也尝试过使用 initWithData -

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 ?? :)

推荐答案

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

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];

这篇关于将 NSData 转回纯文本 NSString的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆