2012-03-28 66 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格式的文件。現在它工作了!