0

データ内の不適切な文字を検出できません。PHP以下のように、データの投稿、処理保存、 PHPMySQLからのリターンの準備、および応答受信にSimplePost を使用しています。アプリのいくつかの場所でこれを使用していますが、通常はすべてが優れています。現在、私のデータは増え続けており、頻繁にエラーが発生しています。PlistParserNSURLConnection

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 関数から返されたデータを直接見ても、異常は見当たりません。エラーの原因がわかりません。

このようなエラーを防ぐためにどこかでできるフィルタリングはありますか? 助けてくれてありがとう!

4

1 に答える 1

0

escapeStrings ではなく URLEncoding を使用してみましたか? おそらく、この「&」のような文字をフィードしようとしていて、コードが台無しになっています...

例: "var2" がこの文字列 "54&3er" と等しい場合: http://test.php?var1=jl5&var2=54&3er&var3=blah

これで、値が割り当てられていないランダムキー「3er」ができました...

Google「URLエンコード」

于 2013-01-08T05:55:57.213 に答える