получить исключение charconversion для значения "%" в параметре запроса? - PullRequest
1 голос
/ 14 сентября 2009

Я получаю добавление некоторых параметров в запросе string.value этих параметров может быть "a %%", "%" и т. Д. На стороне Java-кода. При анализе параметра запроса я получаю исключение преобразования символа как показано ниже в журнале исключений.

13: 14: 39 555 ОШИБКА [STDERR] java.io.CharConversionException: EOF 13: 14: 39,555 ОШИБКА [STDERR] в org.apache.tomcat.util.buf.UDecoder.convert (UDecoder.java:119) 13: 14: 39,555 ОШИБКА [STDERR] в org.apache.tomcat.util.buf.UDecoder.convert (UDecoder.java:87) 13: 14: 39,555 ОШИБКА [STDERR] в org.apache.tomcat.util.http.Parameters.processParameters (Paramete rs.java:428) 13: 14: 39,555 ОШИБКА [STDERR] в org.apache.tomcat.util.http.Parameters.processParameters (Paramete rs.java:515) 13: 14: 39,555 ОШИБКА [STDERR] в org.apache.tomcat.util.http.Parameters.handleQueryParameters (Para meters.java:298) : 14: 39,555 ОШИБКА [STDERR] в org.apache.coyote.tomcat4.CoyoteRequest.parseRequestParameters (Co yoteRequest.java:1933)

что мне делать?

1 Ответ

5 голосов
/ 14 сентября 2009

Похоже, что строка запроса, отправляемая в ваш код Java, искажена. Знак процента является особенным в строках запроса: он вводит двухзначное шестнадцатеричное число, обозначающее символ. Например, %20 это пробел. Чтобы правильно поставить знак процента в строке запроса, используйте %25 (символ 25h - это знак процента в Юникоде). Если строка запроса, которую вы действительно обрабатываете, буквально содержит %%, значит, она искажена, и вы захотите, чтобы сторона, отправляющая ее, была исправлена.

Редактировать: в своем комментарии вы говорите, что отправляете неверную строку запроса. Чтобы правильно кодировать параметр запроса, используйте функцию encodeURIComponent JavaScript:

var encodedValue;
encodedValue = encodeURIComponent(yourTextfield.value);
someurl = "http://example.com?x=" + encodedValue;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...