У меня есть простой java-код, который отправляет запрос POST в php файл, например, я отправляю "test+-", когда я возвращаю сообщение "Возврат", - почему "+" удаляется?
Код java преобразует текст в байты, возможно, есть потеря признака?
OutputStream out=conn.getOutputStream();
out.write(test.getBytes());
спасибо за помощь.
Обновить:
Я набрал out.write(URLEncoder.encode(test).getBytes());
, спасибо до @Marek, но с помощью этого метода php не распознает текст POST
Редактировать:
Найденное решение, основанное на ответе @HugoDelsing, я просто заменяю в классе php все пробелы на + и решая ошибку.
$test = str_replace(' ', '+', $test);
Вы не можете просто писать пост-поток, вам нужно его закодировать, например, используя URLEncoder
:
out.write(URLEncoder.encode(test).getBytes());
Не понятно, какую кодировку вы используете, поставьте ее как второй параметр.
getBytes()
должен иметь возвращаемое значение, обновленный ответ.
+
- это кодированная версия дляspace
.