【发布时间】:2010-12-28 05:11:24
【问题描述】:
所以我从我的 iPhone 应用程序中的 php 脚本中获取 JSON 字符串:
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.)
和一个空字符串。我的 PHP 文件本身是 UTF8,我没有使用 utf8_encode(),因为这似乎对数据进行了双重编码,因为我已经将数据作为 NSUTF8StringEncoding 提取。无论哪种方式,在我的单回声测试中,这种方法让我能够在构建 JSON 对象时成功记录 \ASDAS 样式的 UTF8 转义。
如果字符串较大,可能导致错误的原因是什么?
另外,我不确定它是否会有所不同,但我在我解析的 php 数据上使用 php 函数 addlashes() 来解释构建 JSON 字符串时的引号等。
【问题讨论】:
标签: iphone objective-c cocoa json