специальный символ iPhone ns url post - PullRequest
1 голос
/ 17 января 2012

Я работаю в iPhone.Я использую php на стороне сервера.
Я хочу отправлять комментарии.Я пишу свой код следующим образом:

NSString *path=[[NSBundle mainBundle] pathForResource:@"url" ofType:@"plist"];
NSMutableDictionary *tmpDic=[[NSMutableDictionary alloc]initWithContentsOfFile:path];
NSMutableString *tempUrl=[tmpDic valueForKey:@"url1"];  
NSString *urlString=[NSString stringWithFormat:@"%@/CC/postcomment",tempUrl];

NSString *post =[NSString stringWithFormat:@"placeId=%d&user_name=%@&comment=%@&userId=%d",uPlaceId,displayName,[self urlEncodeValue:message],[u.userId intValue]];

NSLog(@"%@",post);     

NSURL *url=[NSURL URLWithString:urlString];
NSData *postData = [post dataUsingEncoding:NSASCIIStringEncoding
                      allowLossyConversion:YES];

NSString *postLength = [NSString stringWithFormat:@"%d", [postData length]];
NSMutableURLRequest *request = [[[NSMutableURLRequest alloc] init] autorelease];
[request setURL:url];
[request setHTTPMethod:@"POST"];
[request setValue:postLength forHTTPHeaderField:@"Content-Length"];
[request   setValue:@"application/x-www-form-urlencoded"
 forHTTPHeaderField:@"Content-Type"];
[request setHTTPBody:postData];

Но когда я пишу какой-то специальный символ в строке комментария, например, как # $% ^, это создает проблему при отправке комментариев.

для этогоя использовал кодировку моего комментария.это функция для кодирования:

-(NSString *)urlEncodeValue:(NSString *)str {
    NSString *result = (NSString *) 
    CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault, (CFStringRef)str, NULL, CFSTR("?=&+˜!@#$%ˆ&*()_+|\\?'/.>,<;:\"\\'"), kCFStringEncodingUTF8);
    CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault, (CFStringRef)str, NULL, CFSTR("?=&+"), kCFStringEncodingUTF8);

    NSLog(@"%@",result);
    return [result autorelease];
}

Работает нормально.но все еще создает проблему, когда я хочу отправить ** обратную косую черту в комментарии.
Поскольку этот следующий запрос и генерирует:

insert into place_comments(placeId,comment_datetime,user_name,comment,userId) values('15','2011-02-01','sharmagunjan','\','199') ;

В этом запросе этот \ создаетпроблема в запросе.
Пожалуйста, предложите мне, что я должен сделать для этого.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...