因此,我使用以下命令从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字符串在我测试输出时进行验证。现在我遇到了一个编码问题。当我获取单个echo'd行时,例如:
{ "testKey":"é" }JSON解析器工作正常,我能够创建一个有效的JSON对象。然而,当我获取我的2MB JSON字符串时,我得到的是:
Error: Operation could not be completed. (Cocoa error 261.)和一个空字符串。我的PHP文件本身就是UTF8,并且我没有使用utf8_encode(),因为它似乎对数据进行了双重编码,因为我已经将数据提取为NSUTF8StringEncoding。无论哪种方式,在我的单回声测试中,正是这种方法使我能够在构建UTF8对象时成功地记录\ASDAS样式的JSON转义。
在较大字符串的情况下,可能是什么导致了错误?
此外,我不确定这是否有区别,但在构建JSON字符串时,我在解析后的php数据上使用php函数addslashes()来处理引号等问题。
发布于 2010-05-21 13:03:23
我不知道这是不是你的问题,但我刚刚遇到了一个类似的问题(stringWithContentsOfFile,没有JSON),问题是文件有CRLF (windows)行结尾和Western-不管它是什么-称为编码。我使用SubEthaEdit转换成LF (Mac/Unix行尾)和UTF-8编码,现在一切正常。
发布于 2011-01-27 01:00:57
我很惊讶,在调用NSString stringWithContentsOfFile: encoding :error:时,没有人提到使用不同的编码值而不是NSUTF8StringEncoding。
在解析JSON文件时,我也得到了Cocoa错误261。我刚刚看了一遍NSString encodings的列表,直到其中一个正常工作。幸运的是,第一个方法适用于我: NSASCIIStringEncoding!
您还可以使用NSString stringWithContentsOfFile:usedEncoding:error:来尝试找到正确的编码(如此处所述:How to use stringWithContentsOfURL:encoding:error:?)。
发布于 2012-07-29 19:23:06
编码问题: Cocoa错误261?我通过尝试不同的编码解决了这个问题。一开始我使用NSUTF8,然后我切换到NSASCIIStringEncoding,它在__上工作。
NSString* path = [[NSBundle mainBundle] pathForResource: @"fileName" ofType: @"type"];
NSData* data = [NSData dataWithContentsOfFile:path];
NSString *string = [[NSString alloc] initWithData:data encoding:NSASCIIStringEncoding];
NSLog(@"%@",string);https://stackoverflow.com/questions/1931113
复制相似问题