【发布时间】:2014-07-16 20:32:07
【问题描述】:
我从其他帖子中尝试了很多其他解决方案,但没有成功从我收到的数据中获取字符串。除了我在另一个文件上运行几乎一个副本并且它工作 100% 的时间。它甚至从完全相同的 php 文件中获取数据。
+ (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data
{
[imagesTableData appendData:data];
NSString *dataStringImages = [[NSString alloc] initWithData:imagesTableData encoding:NSUTF8StringEncoding];
receivedDataImages = [NSString stringWithFormat:@"%@%@",receivedDataImages,dataStringImages];
}
+ (void)connectionDidFinishLoading:(NSURLConnection *)connection
{
NSLog(@"%lu -- %@",(unsigned long)[imagesTableData length],receivedDataImages);
}
NSLog 输出:14938 -- (null)
我已通过将 encoding:NSUTF8StringEncoding 更改为 encoding:NSASCIIStringEncoding 解决了我的问题。请参阅下面我对 didReceiveData 的修复:
+ (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data
{
[imagesTableData appendData:data];
NSString *dataStringImages = [[NSString alloc] initWithData:imagesTableData encoding:NSASCIIStringEncoding];
receivedDataImages = [NSString stringWithFormat:@"%@%@",receivedDataImages,dataStringImages];
}
现在我不知道为什么要解决这个问题?让我解释一下是什么让我如此困惑。我有两个不同但相似的实用程序文件,用于接收数据进行解析,然后将它们放入数据库中。
问题在于两个文件都连接到同一个 PHP 文件,并且 PHP 文件以完全相同的方式输出数据,但数据量不同。为什么需要“NSUTF8StringEncoding”和另一个“NSASCIIStringEncoding”的编码?
查看我的代码和下面每个实用程序文件的相关数据输出。
实用程序文件 A
+ (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data
{
[placesTableData appendData:data];
NSString *dataStringPlaces = [[NSString alloc] initWithData:placesTableData encoding:NSUTF8StringEncoding];
receivedDataPlaces = [NSString stringWithFormat:@"%@%@",receivedDataPlaces,dataStringPlaces];
}
实用数据 A
MERRYMAN|Merryman Performing Arts Center|LOC|40.698903|-99.085779|||Mention this coupon when ordering for 20% off tickets at the Merryman Performing Arts Center.|308-698-8297||http://www.merrymancenter.org|225 West 22nd Street Kearney, NE 68845||0000-00-00 00:00:00|0000-00-00 00:00:00|0|2014-07-16 21:29:51~~
实用程序文件 B
+ (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data
{
[imagesTableData appendData:data];
NSString *dataStringImages = [[NSString alloc] initWithData:imagesTableData encoding:NSASCIIStringEncoding];
receivedDataImages = [NSString stringWithFormat:@"%@%@",receivedDataImages,dataStringImages];
}
实用程序输出 B
WSGFFJKM|LIPS Printing Service 25% Off|LIPSNewCustomerAd2014_KearneyApp.jpg||LIPSPRINTING2|2014-07-16 23:46:07~~
如果您对如何或是否应该重写我的问题有任何意见,请在 cmets 中提出建议。
【问题讨论】:
标签: ios encoding nsstring nsurlconnection nsdata