不同的NSString结果来自URL下载

我正在parsing一个string,我从网站上获得,但得到不同的结果,取决于我如何下载。 这样它的工作原理:

NSString *tagiString = @"http://tagesanzeiger.ch"; NSURL *tagiURL = [NSURL URLWithString:tagiString]; NSError *error; NSString *text =[NSString stringWithContentsOfURL:tagiURL encoding:NSASCIIStringEncoding error:&error]; 

以下面的方式它不起作用。 我首先下载数据,将其馈入NSMutableData *articleData ,然后使用initWithData:encoding:转换为NSString initWithData:encoding:

 - (void)downloadWebsite { NSString *tagiString = @"http://tagesanzeiger.ch"; NSURL *websiteURL = [NSURL URLWithString:tagiString]; NSURLRequest *request = [NSURLRequest requestWithURL:websiteURL]; connection = [[NSURLConnection alloc] initWithRequest:request delegate:self startImmediately:YES]; } - (void)connection:(NSURLConnection *)conn didReceiveData:(NSData *)data { [articleData appendData:data]; } - (NSString *)data { NSString *text = [[NSString alloc] initWithData:articleData encoding:NSSymbolStringEncoding]; return text; } 

似乎这两个版本所产生的NSString *text内容是不一样的? 我需要使用不同的string编码吗? 我尝试了许多没有成功。

实现委托方法connectionDidFinishLoading,以确保连接加载已经完成,你可以调用你的数据方法。 也尝试使用NSASCIIStringEncoding而不是NSSymbolStringEncoding。

 - (void)connectionDidFinishLoading:(NSURLConnection *)connection { NSString *text = [[NSString alloc] initWithData:self.articleData encoding:NSASCIIStringEncoding]; //do whatever you need to do with the text } 

是的,你需要使用不同的string编码。 你可以试试NSUTF8StringEncoding 。 这在为我工作。 而utf-8几乎是最stream行的编码方式。