Похоже, что строка запроса, отправляемая в ваш код Java, искажена. Знак процента является особенным в строках запроса: он вводит двухзначное шестнадцатеричное число, обозначающее символ. Например, %20
это пробел. Чтобы правильно поставить знак процента в строке запроса, используйте %25
(символ 25h - это знак процента в Юникоде). Если строка запроса, которую вы действительно обрабатываете, буквально содержит %%
, значит, она искажена, и вы захотите, чтобы сторона, отправляющая ее, была исправлена.
Редактировать: в своем комментарии вы говорите, что отправляете неверную строку запроса. Чтобы правильно кодировать параметр запроса, используйте функцию encodeURIComponent
JavaScript:
var encodedValue;
encodedValue = encodeURIComponent(yourTextfield.value);
someurl = "http://example.com?x=" + encodedValue;