Просто попробуйте url_encode сообщения, которое вы отправляете. Или закодируйте это сообщение своим собственным алгоритмом, который заменит каждый символ сообщения его шестнадцатеричным представлением (например, «Hello!» -> «48656c6c6f21»), но размер сообщения будет удвоен.
Затем вы должны декодировать сообщение на стороне сервера, если вы используете свой собственный метод кодирования, данные url_encoded будут автоматически декодированы.
Также вы ДОЛЖНЫ проверить текст ответа, прежде чем пытаться его проанализировать. Просто проверьте, начинается ли это с "" текста.
И, наконец, чтобы проверить строку на наличие недопустимых символов, выполните цикл через строковые символы и проверьте, содержатся ли они в строке запрещенных символов, что-то вроде
array<Byte> strchars = new array<Byte>(255);
str.GetBytes(strchars, 0, str.length);
string dch = "<>@#%^&`\\'\"";
bool invalid = false;
for (i=0;i<str.length;i++) if (dch.IndexOf(strchars[i]) >= 0) {invalid = true; break; }
P.S. Я не являюсь носителем английского языка и не очень часто употребляю Objective C, так что не судите меня много: D