将 NSData 转换为 NSString

发布于 2024-12-29 18:58:37 字数 882 浏览 3 评论 0原文

我正在解析一个 URL,我在 NSMutableData 对象中获取一些数据,即 urlData。现在在 - (void)connectionDidFinishLoading:(NSURLConnection *)connection {} 中,我想将 urlData 转换为 NSString。我尝试过:

NSString *responseData =  [NSString stringWithCString:[urlData bytes] length:[urlData length]];   
NSString* responseData = [NSString stringWithUTF8String:[urlData bytes]];   
NSString *responseData = [[NSString alloc] initWithBytes:[urlData bytes] length:[urlData length] encoding:NSUTF8StringEncoding] ;   
NSString *responseData = [[NSString alloc] initWithData:urlData encoding:NSASCIIStringEncoding];   
NSString *responseData = [[NSString alloc] initWithData:urlData encoding:NSUTF8StringEncoding]; 

我要么在 NSString 对象中获取 null ,要么在 PK(我无法向您展示的反向问号)中获取 null

谁能给我解决这个问题吗?

I am parsing a URL, I am getting some data in a NSMutableData object i.e urlData. Now in - (void)connectionDidFinishLoading:(NSURLConnection *)connection {} I would like to convert the urlData to a NSString. I have tried with:

NSString *responseData =  [NSString stringWithCString:[urlData bytes] length:[urlData length]];   
NSString* responseData = [NSString stringWithUTF8String:[urlData bytes]];   
NSString *responseData = [[NSString alloc] initWithBytes:[urlData bytes] length:[urlData length] encoding:NSUTF8StringEncoding] ;   
NSString *responseData = [[NSString alloc] initWithData:urlData encoding:NSASCIIStringEncoding];   
NSString *responseData = [[NSString alloc] initWithData:urlData encoding:NSUTF8StringEncoding]; 

I am either getting null in NSString object or PK(reverse Question Marks which i am unable to show you).

Can anyone give me a solution for this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

迷爱 2025-01-05 18:58:37
-(id)initWithData:(NSData *)data encoding:(NSStringEncoding)encoding

是您需要使用的方法。您的问题是您没有使用正确的编码,或者数据不是字符串数据。 NSLog 记录数据并检查它以弄清楚它到底是什么。

来自苹果文档:

通过将数据中的字节转换为初始化的 NSString 对象
使用编码的 Unicode 字符。返回的对象可能是
与原来的接收器不同。如果返回 nil
由于某种原因初始化失败(例如,如果数据没有
代表编码的有效数据)。

-(id)initWithData:(NSData *)data encoding:(NSStringEncoding)encoding

is the method you need to use. Your problem is either that you are not using the correct encoding or the data is not string data. NSLog the data and examine it to figure pout what it really is.

From the Apple documents:

An NSString object initialized by converting the bytes in data into
Unicode characters using encoding. The returned object may be
different from the original receiver. Returns nil if the
initialization fails for some reason (for example if data does not
represent valid data for encoding).

枯叶蝶 2025-01-05 18:58:37

使用下面的代码就可以了

NSString *str=[[NSString alloc] initWithBytes:[urlData bytes] length:[urlData length] encoding:NSStringEncodingConversionAllowLossy]; 
NSLog(@"urlData........%@",str);

Use below code it will work

NSString *str=[[NSString alloc] initWithBytes:[urlData bytes] length:[urlData length] encoding:NSStringEncodingConversionAllowLossy]; 
NSLog(@"urlData........%@",str);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文