правильная кодировка запроса NSURL - PullRequest
0 голосов
/ 25 августа 2011

Мне нужно закодировать тело моего запроса POST, но я не знаю, какой использовать.У меня проблемы с изменением ´ (´ на% 28. До сих пор я использовал NSUTF8StringEncoding, NSISOLatin1StringEncoding, NSISOLatin2StringEncoding. Ни один из них не работает.

Имя параметра, который я должен отправить:

monitoring_report[monitoring_report_time(1i)]=

, который можно преобразовать в:

monitoring_report%5monitoring_report_time%281i%29%5D=

, и я получу:

monitoring_report%5Bmonitoring_report_time(1i)%5D=

1 Ответ

2 голосов
/ 25 августа 2011

Используйте базовую функцию Foundation CFURLCreateStringByAddingPercentEscapes, которая имеет параметр legalURLCharactersToBeEscaped.Скобки в URL допустимы, поэтому по умолчанию они не экранированы.

Пример:

NSString *input = @"monitoring_report[monitoring_report_time(1i)]=";
NSString *output = [(NSString *)CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault, (CFStringRef)input, NULL, CFSTR("()"), kCFStringEncodingUTF8) autorelease];
NSLog(@"%@", output); // monitoring_report%5Bmonitoring_report_time%281i%29%5D=
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...