현재 URL에 게시 할 문자열이 있습니다.URL에 게시 될 특수 문자로 문자열을 인코딩하는 방법은 무엇입니까? Objective-C
"&"및 "?"와 같은 특수 문자가 발생하는 경우를 제외하고는 완벽하게 작동합니다. 그 후에 나오는 데이터는 POST되지 않습니다. 예를 들어 "& 무언가입니까?"라는 문자열이 있으면 "나 뭔가 있습니다"라는 메시지 만 표시됩니다. "?"는 게시 된 후 '2'로 변환됩니다.
reason = 'What see see! Are you sure'2''
나는 내가 볼 수있는대로 인코딩 할 수있는 뭔가가 있어야 확신 "나는 & 뭔가 뭔가 무엇입니까?" 그것이 내가 인코딩 설정 직전 같이 :
NSData *postData = [post dataUsingEncoding:NSUTF8StringEncoding];
NSData *postData = [post dataUsingEncoding:NSNonLossyASCIIStringEncoding];
NSData *postData = [post dataUsingEncoding:NSISOLatin1StringEncoding];
다음
의 postData에서 내 코드는 이후 다음과 같습니다 :
NSData *postData = [post dataUsingEncoding:NSASCIIStringEncoding];
을 나는 또한없는 성공을 아래의 인코딩을 시도
NSData *postData = [post dataUsingEncoding:NSASCIIStringEncoding];
//NSLog(@"PostData: %@", postData);
NSString *check = [[NSString alloc] initWithData:postData encoding:NSASCIIStringEncoding];
NSLog(@"check string = %@", check);
NSString *postLength = [NSString stringWithFormat:@"%d", [postData length]];
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init];
[request setURL:[NSURL URLWithString:strURLQueryString]];
[request setHTTPMethod:@"POST"];
[request setValue:postLength forHTTPHeaderField:@"Content-Length"];
[request setHTTPBody:postData];
NSURLResponse *response;
NSError *err=nil;
NSData *responseData = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&err];
NSString *strResponse = [[NSString alloc] initWithData:responseData encoding:NSUTF8StringEncoding];
NSLog(@"Response: %@", strResponse);
if(err!=nil) {
NSLog(@"Error: %@", [err description]);
}
도와주세요. 귀하의 도움을 받으실 수 있습니다.
을 문자열을 보내 ... 몇 게시물을보고 함께 % 이스케이프 자갈길 = [ post dataUsingEncoding : SOME_ENCODING];'NSString * check = [[NSString alloc] initWithData : postData encoding : SOME_ENCODING]; NSLog (@ "check string = % @", check); 그리고 그 당시 문자를 놓쳤습니까? –
나는 결코 그것을 한 적이 없다. 그러나 당신이 그것을 언급했기 때문에 나는 그것을 시도했고 정확한 문자열을 볼 수 있었다. 나는 후속 코드를 게시 할 것이다. –