0

Json Parsing を使用して文字列をサーバーに送信しようとしています。私の文字列には、ó、æ、ø、å などの特殊文字がたくさん含まれています。特別な文字を使用せずにデータをサーバーに送信すると、正常に機能し、応答が期待どおりになります。ただし、特殊文字が 1 つでもある場合は、データの解析中にエラーが表示されます。次のコードを使用してJson文字列を解析しています:-

 NSURL *theURL = [NSURL URLWithString:urlToSendRequest];
NSMutableURLRequest *theRequest = [NSMutableURLRequest requestWithURL:theURL      cachePolicy:NSURLRequestReloadIgnoringCacheData timeoutInterval:10.0f];
NSData *requestData = [NSData dataWithBytes:[jsonContentToSend UTF8String] length:[jsonContentToSend length]];
[theRequest setHTTPMethod:@"POST"];
[theRequest setValue:@"application/json" forHTTPHeaderField:@"Accept"];
[theRequest setValue:@"application/json; charset=UTF-8" forHTTPHeaderField:@"Content-Type"];
[theRequest setValue:[NSString stringWithFormat:@"%d", [requestData length]] forHTTPHeaderField:@"Content-Length"];
[theRequest setHTTPBody: requestData];
NSURLResponse *theResponse = NULL;
NSError *theError = NULL;
NSData *theResponseData = [NSURLConnection sendSynchronousRequest:theRequest returningResponse:&theResponse error:&theError];
NSString *data=[[NSString alloc]initWithData:theResponseData encoding:NSUTF8StringEncoding];
NSLog(@"url to send request= %@",urlToSendRequest);
NSLog(@"jsoncontenttosend= %@",requestData);
NSLog(@"response1111:-%@",data);
return data;

ここで、 urlToSendRequestは URL であり、jsonContentToSendは特殊文字を使用してサーバーに送信する文字列です。

4

2 に答える 2

0

このケースを処理する良い方法は、値を base64 でエンコードされた値として送信し、JSON から文字列などのデータ構造に解析した後、Base64 文字列をデコードし、実際の JSON で無効にすることなく特殊文字を取得することです。

幸運を

于 2013-05-11T11:52:44.017 に答える