2012-03-28 40 views
0

initWithContentsOfURL:error:返回(null)当它应该返回"São Tomé and Príncipe"。我用没有特殊字符的文本测试过,然后工作正常。initWithContentsOfURL:错误:当内容是特殊字符时返回(null)

NSString *myURL = [NSString stringWithString:@"http://mywebsite.com/api-call.php"]; 
NSURL *url = [[NSURL alloc] initWithString:myURL]; 
NSString *strResult = [[NSString alloc] initWithContentsOfURL:url encoding:NSUTF8StringEncoding error:nil]; 
NSLog(@"%@",strResult); 

我想问题是与编码有关,但我不知道如何解决它。

+1

它返回'nil',而不是字符串'(null)'。您是否检查了错误对象以查看它说的内容? 'NSError * err; NSString * strResult = [[NSString alloc] initWithContentsOfURL:url encoding:NSUTF8StringEncoding error:&err]; if(!strResult){NSLog(@“%@”,err); }' – 2012-03-28 17:31:06

+0

不,我现在就试试。谢谢 – budidino 2012-03-28 17:32:34

+0

它返回:“错误域= NSCocoaErrorDomain代码= 261”。看起来我必须检查API是否以UTF-8编码返回。 – budidino 2012-03-28 17:37:32

回答

0

感谢Iulius Caesar我发现我的文档没有以UTF-8编码返回数据。

我修改了php文件,在代码顶部添加了header('Content-Type: text/html; charset=UTF-8');并将其保存为UTF-8格式的文件。现在它工作了!