Php 如何防止“NSURL”到属性列表的连接因意外字符而停止

Php 如何防止“NSURL”到属性列表的连接因意外字符而停止,php,ios,nsurlconnection,eof,property-list,Php,Ios,Nsurlconnection,Eof,Property List,我在检测数据中的不正确字符时遇到问题。我正在使用SimplePost发布数据,PHP处理它,MySQL存储它,PlistParser准备从PHP返回的数据,NSURLConnection接收响应,如下所示。我在我的应用程序中有好几个地方都在使用它,而且一切都很好。现在我的数据在增长,我经常出错 SimplePost正在使用: NSString *escapedString = (__bridge_transfer NSString *) CFURLCreateStringByAdding

我在检测数据中的不正确字符时遇到问题。我正在使用SimplePost发布数据,
PHP
处理它,
MySQL
存储它,
PlistParser
准备从PHP返回的数据,
NSURLConnection
接收响应,如下所示。我在我的应用程序中有好几个地方都在使用它,而且一切都很好。现在我的数据在增长,我经常出错

SimplePost正在使用:

    NSString *escapedString = (__bridge_transfer NSString *) CFURLCreateStringByAddingPercentEscapes(NULL, (__bridge CFStringRef)([dictionary objectForKey:[keyArray objectAtIndex:i]]),NULL, (CFStringRef)@"!*'();:@&=+$,/?%#[]", kCFStringEncodingUTF8);
这是我的连接代码:

//  connection to URL finished with Plist-formatted Questions data array returned from PHP
- (void) connection:(NSURLConnection *)connection didReceiveData:(NSData *)data {
    NSString  *error;
    NSArray *array = (NSArray *)[NSPropertyListSerialization propertyListFromData:data mutabilityOption:NSPropertyListImmutable format:0 errorDescription:&error];
    if( error ) {
        NSLog(@"Error = %@", error );
    return;
}
错误是:

Unexpected character x at line 1
Encountered unexpected EOF
... and such
当我直接查看SimplePost escapedString或PHP函数返回的数据时,我看不到任何异常。我不知道是什么导致了这些错误


有没有更多的过滤我可以做的地方,以防止这种错误?谢谢你的帮助

您是否尝试过使用URL编码而不是转义字符串?您可能正在尝试输入一个像“&”这样的字符,它会把您的代码弄乱

示例:如果“var2”等于此字符串“54&3er” 除此之外:

现在您有了一个没有赋值的随机键“3er”


谷歌“URLEncode”

谢谢,阿尔伯特,我会继续研究编码策略。我尝试了几种不同的cfurlcreateStringByAddingPercentescape,但没有发现任何性能差异。我的数据库可能需要一个VARCHAR(256),但偶尔iPhone应用程序会发送并稍后检索一个长度超过256个字符的字符串,这种情况又如何呢?这会导致什么问题?我认为如果数据库长度超过256个字符,就会删除这些值,您是否手动检查了发生的情况?我真的不知道发生了什么。我将我的连接调用合并到一篇文章中,在后端完成所有工作,只接收一个返回的字典数组。有时工作得很漂亮。有时,它会因错误而阻塞,导致“意外EOF”和“第1行意外字符”错误。我很困惑!