Я пытаюсь передать строку поиска из переднего конца javascript в java-контроллер, который обращается к другому api.URLDecoder.decode не работает как ожидалось
Все работает, за исключением строки со специальными символами ex "test + 123".
Я исправил это с помощью кодирования/декодирования, чтобы попытаться решить эту проблему. Я использую комбинацию JavaScript encodeURIComponent() (http://www.w3schools.com/jsref/jsref_encodeuricomponent.asp) и Java раскодирования URL-адресов (http://download.java.net/jdk7/archive/b123/docs/api/java/net/URLDecoder.html#decode(java.lang.String,%20java.lang.String))
Кроме того, я смотрел на это: Java - URLDecoder.decode(String s) vs URLDecoder.decode(String s, String enc)
они используют "utf8" (UrlDecoder.decode (строка, "utf8 ");)
Я проверил только с помощью только код javascript, который превращает мою строку« test + 123 »во что-то, что подтягивает кучу правильных результатов.
Мой регистратор заявляет, что поиск правильной строки поиска выполняется.
Ex "тест + 123": Без кодирования Javascript -> "Тест 123"
С помощью JavaScript закодировать -> "тест + 123"
С Java декодировании -> Нет результата?
код My Javascript выглядит следующим образом:
var encodedString=encodeURIComponent($("#search-input").val());
Мой Java код выглядит следующим образом:
String result = URLDecoder.decode(encodedSearchString,"utf8");
Я проверил отладчик и мой регистратор правильно, encodedSearchString не кодируется.
Что происходит?
Я еще не написал никакого другого кода, относящегося к кодированию или декодированию, я не вижу, что это происходит где-либо еще в коде. Я использую spring mvc, maven, и intellj если это имеет значение.
Я попытался сыграть с utf, а также использовать устаревший .decode (string), чтобы устранить эту переменную :(К сожалению, это не проблема. – Tai