Я создаю NSMutableUrlRequest для отправки данных к серверу, добавляю все необходимые поля к нему и затем добавляю строку для отправки как это:
[theRequest setHTTPBody:[postString dataUsingEncoding: NSUTF8StringEncoding]];
постстрока является обычным NSString.
Проблема, когда я получаю этот запрос в сервере, весь плюс (+), знаки исчезают из тела HTTP. Таким образом, если у меня был "abcde+fghj" на iPhone, я добираюсь "abcde fghj" на сервере".
Может это быть некоторой проблемой кодирования от использования dataUsingEncoding: NSUTF8StringEncoding? Или некоторая функция разделения NSMutableUrlRequest? Что я могу сделать, чтобы заставить его прекратить разделять знаки "плюс"? Я должен получить строки UTF8 в стороне сервера.
Возможно, сервер не знает кодировку тела POST. Вы пытались добавить charset = UTF- 8 в заголовок вашего запроса:
[theRequest setValue:@"application/x-www-form-urlencoded; charset=UTF-8" forHTTPHeaderField:@"Content-Type"];
Знак плюс (+) является стандартным ярлыком для пробела в строке запроса URL-адреса. Если вам нужен литерал +, закодируйте его как %2b.