는 그래서 사용하여 내 아이폰의 애플 리케이션에서 PHP 스크립트에서 JSON 문자열을 가져 오는 해요 : I 출력을 테스트 할 때인코딩 문제 : Cocoa Error 261?
는NSURL *baseURL = [NSURL URLWithString:@"test.php"];
NSError *encodeError = [[NSError alloc] init];
NSString *jsonString = [NSString stringWithContentsOfURL:baseURL encoding:NSUTF8StringEncoding error:&encodeError];
NSLog(@"Error: %@", [encodeError localizedDescription]);
NSLog(@"STRING: %@", jsonString);
json으로 문자열의 유효성을 검사합니다. 이제 인코딩 문제가 있습니다.
{ "testKey":"é" }
JSON 구문 분석기가 정상적으로 작동하고 유효한 JSON 개체를 만들 수 있습니다. 그러나 2MB JSON 문자열을 가져 오면
Error: Operation could not be completed. (Cocoa error 261.)
및 Null 문자열이 표시됩니다. 내 PHP 파일은 UTF8 자체이며 utf8_encode()를 사용하지 않습니다. 데이터를 이미 NSUTF8StringEncoding으로 가져 오기 때문에 데이터를 이중으로 인코딩 할 것입니다. 어느 쪽이든, 내 단일 에코 테스트에서는 JSON 객체를 빌드 할 때 \ ASDAS 스타일 UTF8 이스케이프를 성공적으로 기록 할 수있는 접근 방식입니다.
큰 문자열의 경우 오류의 원인은 무엇입니까?
또한 차이점이 있는지 잘 모르겠습니다 만, PHP 파싱 함수를 사용하여 addslashes()를 사용하여 구문 분석 된 PHP 데이터에 인용문 등을 설명 할 때 JSON 문자열을 작성할 때 유용합니다.
또한 파일 인코딩 유형을 검사하는 것이 유용 할 수 있습니다. 나는 이것을하기 위해 Text Wrangler를 사용했다. 파일을 열고 창 하단에 인코딩 종류가 표시됩니다. UTF16이 필요했지만 많은 변형이있었습니다. – TigerCoding