У меня есть простой Java-код, который отправляет запрос POST в php-файл, например, я отправляю «test + -», когда я возвращаю сообщение «test» - «почему удаляется + ?_POST [] удалить все + знак
Код java преобразует текст в байты, возможно, есть потеря признака?
OutputStream out=conn.getOutputStream();
out.write(test.getBytes());
Thx для справки.
Update:
Я tyed out.write(URLEncoder.encode(test).getBytes());
, THx к @Marek, но с этим методом PHP не распознает текст POST
Edit:
Найдено решение, основанный на @HugoDelsing answer Я просто заменяю в php-классе все пробелы + и решая ошибку.
$test = str_replace(' ', '+', $test);
Знак '+' - это кодированная версия для 'space'. –
«Повторное кодирование» 1 символ на стороне php не устранит проблему с начальной кодировкой. Кроме того, теперь вы не можете размещать пустые места без их неправильной замены на знаки плюс. – Phil
@ Phil_1984_ Это то, что я отправляю, это просто зашифрованный текст RSA, поэтому не может быть пробела, или я так думаю. – peti446