«+» не декодируется с помощью декодера

У меня есть 2 страницы jsp, где закодировано значение, введенное в текстовое поле в share.jsp, декодирование выполняется на странице forwarded.jsp. если текст, введенный в поле txt, равен «xyz +», то декодирование является неверным, результатом декодирования является только «xyz», т.е. «+» не декодируется.

Кодировка страницы на обеих страницах одинакова:

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>

фрагмент: -

доля.jsp

document.getElementById('hiddenFolderList').value = (encodeURI(document.getElementById('folderId').value,"UTF-8"));

переадресовано.jsp

String folders=java.net.URLDecoder.decode(request.getParameter("hiddenFolderList"),"UTF-8");

Я также проверил в Инструмент кодирования и декодирования URL, там также "+" не декодируется, как избежать/предотвратить это?


person xyz    schedule 10.07.2013    source источник


Ответы (1)


Функция javascript encodeURI "кодирует специальные символы, кроме: , / ? : @ & = + $ # (Используйте encodeURIComponent() для кодирования этих символов)"

Предоставленный вами пример страницы работает нормально... пробел закодирован как +, поэтому + будет декодирован как пробел. если вы закодируете +, он превратится в %2B.

person jvilhena    schedule 10.07.2013