Demande de paramètre perdant signe plus

Je suis l'édition d'un formulaire de recherche et d'essayer de se protéger contre des caractères spéciaux dans la base de données. Dans la page JSP formulaire de recherche, un (sélection multiple) liste déroulante permet aux utilisateurs de sélectionner des descriptions qui sera utilisé dans la requête (note: les descriptions est une liste de chaînes de caractères):

<select id="descriptionSelect" multiple="multiple">
    <c:forEach items="${descriptions}" var="description">
        <option value="${fn:escapeXml(description)}")}">                            
            <c:out value="${description}" />
        </option>
    </c:forEach>
</select>

Lorsque le formulaire soumet, la page génère dynamiquement l'URL qui prend des paramètres de requête dans l'URL (moche, je sais, les mains liées). Voici la snipet faire la description du segment.

var descriptionSelectBox = document.getElementById("descriptionSelect");
var descriptionsUrlAddition = "";

for (var i = 0; i < descriptionSelectBox.options.length; i++) {
    if (descriptionSelectBox.options[i].selected) {
        descriptionsUrlAddition += "&descriptions=" + escape(descriptionSelectBox.options[i].value);
    }
}

J'ai un test d'entrée dans la base de données dont la description est:

AAA `~!@#$%^&*()_+-={}|[]\:";'<>?,./Et wow, cela a beaucoup de caractères spéciaux.

Avec le code ci-dessus, pour une raison quelconque, lorsque la demande arrive à la manette, la description perd le signe + (il devient juste un espace).

Personne ne sait ce qui se passe et comment le résoudre? Je ne suis pas sûr si c'est quelque chose à faire avec les Url d'utilisation spéciale de +, ou quoi. J'ai pu modifier la façon dont les descriptions liste est remplie (peut-être s'échapper il). Si vous offrent cela comme une suggestion, veuillez utiliser Java code spécifique (pas de Apache échapper utils de classes, etc).

Si elle permet, à l'aide d'alertes en JavaScript indiquent que le signe + n'est pas d'être transformé avant l'envoi de la demande.

source d'informationauteur Rachel G.