Quand tu récupère le texte d'un formulaire, il faut que tu encode toi même les caractères que tu reçois.
Par exemple tu crée un Filtre de ce genre :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
|
public class UTF8EncodingFilter implements javax.servlet.Filter {
public void init(FilterConfig filterConfig) throws ServletException {
// This would be a good place to collect a parameterized
// default encoding type. For brevity, we're going to
// use a hard-coded value in this example.
}
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain filterChain) throws IOException, ServletException {
// Specify the encoding to assume for the request so
// the parameters can be properly decoded/.
//request.setCharacterEncoding("UTF-8");
request.setCharacterEncoding("ISO-8859-15");
filterChain.doFilter(request, response);
}
public void destroy() {
// no-op
}
} |
Et quand tu affiche les pages, il faut bien que tu précise au navigateur que tes pages sont en ISO-8859-15.
Tu peux pour ça rajouter les balises suivantes pour tes JSP :
1 2 3
|
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<META http-equiv="Content-Type" content="text/html; charset=UTF-8"> |
(remplace UTF-8 par ISO-8859-15)
Avec ça tout devrait rentrer dans l'ordre.
Jérôme
PS : Si tu stocke tes valeurs dans une base de données, assure toi que ta base soit au bon encodage.
Partager