_POST [] удалить все + знак

0

У меня есть простой 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);

  • 1
    знак + - это кодированная версия для space .
  • 0
    «Перекодирование» 1 символа на стороне php не решит проблему с исходной кодировкой. Кроме того, теперь вы не можете размещать пустые места, если они не поменялись местами со знаком плюс.
Показать ещё 1 комментарий
Теги:
post

1 ответ

1

Вы не можете просто писать пост-поток, вам нужно его закодировать, например, используя URLEncoder:

out.write(URLEncoder.encode(test).getBytes());

Не понятно, какую кодировку вы используете, поставьте ее как второй параметр.

  • 0
    Когда я говорю так же, как `OutputStream out = conn.getOutputStream (); out.write (URLEncoder.encode (querry.getBytes (), type)); `я получаю ошибку, что byte [] не может быть преобразован в строку, если я разрешу его как stryn, то выходной поток говорит, что это нужно байт[]
  • 0
    Правильно, getBytes() должен иметь возвращаемое значение, обновленный ответ.
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню