Хорошо, после долгих исследований и помощи пользователей stackoverflow, я сузил, как исправить мою проблему. Большинство специальных символов работают, кроме амперсанда.
Итак, как я могу реализовать следующий код дважды? Я хочу сделать это
[[tvQ.text stringByReplacingOccurrencesOfString:@"&" withString:@"and"] stringByAddingPercentEscapesUsingEncoding:NSASCIIStringEncoding]
и
[[tvQ.text stringByReplacingOccurrencesOfString:@"\n" withString:@" "] stringByAddingPercentEscapesUsingEncoding:NSASCIIStringEncoding]
для той же NSString
- (void) doPost:(NSString *)sport {
NSUserDefaults *p = [NSUserDefaults standardUserDefaults];
NSString* string1 = [[p valueForKey:@"user"] stringByAddingPercentEscapesUsingEncoding:NSASCIIStringEncoding];
NSString* string2 = [[p valueForKey:@"pass"] stringByAddingPercentEscapesUsingEncoding:NSASCIIStringEncoding];
NSString* string3 = [[[tvQ.text stringByReplacingOccurrencesOfString:@"\n" withString:@" "] stringByAddingPercentEscapesUsingEncoding:NSASCIIStringEncoding];
NSString* string4 = [[tvQ.text stringByReplacingOccurrencesOfString:@"&" withString:@"and"] stringByAddingPercentEscapesUsingEncoding:NSASCIIStringEncoding];
NSString* urlString = [NSString stringWithFormat:@"http://website.com/phpscript.php?user=%@&pass=%@&cat=%@&sub=%@&body=%@",string1,string2,sport,@"",string3,string4];
id val1 = [NSString stringWithContentsOfURL:[NSURL URLWithString:urlString]];
[p setObject:val1 forKey:@"q"];
Я не уверен, что я делаю неправильно здесь, так что он уважает оба аргумента, определенные в строках 3 и строке4.
Просто вставьте метод, который преобразует строку:
[[[tvQ.text stringByReplacingOccurrencesOfString:@"&" withString:@"and"] stringByReplacingOccurrencesOfString:@"\n" withString:@" "] stringByAddingPercentEscapesUsingEncoding:NSASCIIStringEncoding]
Теперь строка имеет все '&' заменен на "и", И все "\n" заменены на "", И он обрабатывается через stringByAddingPercentEscapesUsingEncoding: NSASCIIStringEncoding, чтобы сделать его безопасным для передачи в виде веб-запроса.
Но помните о проблеме, о которой говорил последний вопрос, - не слишком глубоко гнездайтесь, или может быть очень трудно прочитать то, что вы написали, когда вы позже вернетесь к ней.