63 votes

Encodage UTF-8 dans Spring MVC, problème avec les FORM

J'ai ceci dans web.xml

    <filter>
        <filter-name>encoding-filter</filter-name>
        <filter-class>
            org.springframework.web.filter.CharacterEncodingFilter
        </filter-class>
        <init-param>
            <param-name>encoding</param-name>
            <param-value>UTF-8</param-value>
        </init-param>
        <init-param>
        <param-name>forceEncoding</param-name>
        <param-value>true</param-value>
        </init-param>
    </filter>

    <filter-mapping>
        <filter-name>encoding-filter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
 

et au sommet de file.jsp j'ai ceci:

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

en <head> ceci:

 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
 

et les caractères autres que latin-1 définis dans FORM avec la méthode POST ne sont toujours pas corrects.

85voto

jbb Points 406

J'ai résolu ça.

Ce filtre dans web.xml doit être le premier filtre dans le fichier.

8voto

Michel Z Points 71

Notez que cela ne fonctionne que pour les requêtes POST . Si vous souhaitez également coder les demandes GET (c'est-à-dire les liens avec <a href=...> ), vous devrez modifier le fichier server.xml de votre serveur en ajoutant URIEncoding="UTF-8" useBodyEncodingForURI="true" attributs dans les <Connector> tag.

Voir: http://wiki.apache.org/tomcat/FAQ/CharacterEncoding

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X