我正在開發iOS應用程序。我在下面的代碼中從PHP服務器獲取JSON數據。當我在開發iOS應用程序時從服務器獲取JSON數據時,包含奇怪的字符
NSURL *requestUrl = [NSURL URLWithString:urlString];
NSURLRequest *request = [[NSURLRequest alloc] initWithURL:requestUrl];
NSHTTPURLResponse *httpResponse;
NSData *data = [NSURLConnection sendSynchronousRequest:request
returningResponse:&httpResponse error:nil];
NSString *str= [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSError *e = nil;
NSArray *array =[NSJSONSerialization JSONObjectWithData:[str dataUsingEncoding:NSUTF8StringEncoding] options:NSJSONReadingAllowFragments|NSJSONReadingMutableContainers|NSJSONReadingMutableLeaves error:&e];
NSLog(@"str=%@",str);
NSLog(@"error=%@",e);
的NSLog(@ 「錯誤=%@」,E)說: 「錯誤域= NSCocoaErrorDomain代碼= 3840」 的操作無法完成。 (Cocoa error 3840.)「(字符3010周圍形成不良對象)。UserInfo = 0x15ed7f40 {NSDebugDescription =字符3010周圍形成不良對象。}」。
NSLog(@「str =%@」,str)意外地包含「\ 343 \ 201」。
我認爲問題是JSON數據不正確,並且上面的「\ 343 \ 201」導致此問題。
你能告訴我如何解決這個問題嗎?
你爲什麼要從數據轉換爲字符串並返回數據?這隻會耗費時間,電池壽命,內存,並且不會有任何用途。向我們展示似乎會導致問題的整個字符串。如果您收到錯誤的JSON數據,則需要在服務器上進行修復。另一方面,這可能只是通過UTF-8與非ASCII數據,並且正常。 – gnasher729 2014-08-27 15:10:39
當您使用NSURLConnection檢索數據時,您忽略了錯誤 - 您是否檢查過這裏是否存在問題?你確定你從服務器獲得的數據是UTF-8嗎? – thegrinner 2014-08-27 15:11:45
-1不引用整個錯誤消息。 – 2014-08-27 15:19:57