2010-04-24 5 views
0

Bonjour, j'ai un fichier jsp avec un formulaire html.Problèmes de codage de caractères de formulaire avec des caractères spéciaux

je définir le type de contenu comme celui-ci:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1" %> 

Lorsque j'envoie des caractères spéciaux comme á é í ó ú ils sont enregistrés correctement dans la base de données. Mon jeu de table est utf-8.

Je souhaite modifier iso-8859 utf-8 comme celui-ci pour normaliser ma demande et accepter plus de caractères spéciaux:

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

mais quand je change à utf-8 les caractères spéciaux á é í ó ú ne sont pas enregistrés correctement dans la base de données. Lorsque j'essaie d'enregistrer á il est enregistré comme

Dans le côté serveur j'utilise Spring MVC. Je reçois la valeur du champ de texte comme celui-ci:

String strField = ServletRequestUtils.getStringParameter(request, 
        "field"); 

Répondre

4

Lorsque vos pages ne sont pas ISO-8859-1, vous devez déclarer un CharacterEncodingFilter dans web.xml:

<filter> 
    <filter-name>charsetFilter</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> 
</filter> 

<filter-mapping> 
    <filter-name>charsetFilter</filter-name> 
    <url-pattern>/*</url-pattern> 
</filter-mapping> 
+0

J'ai essayé et encore obtenir á place de – Enrique

+2

Je viens de déplacer le filtre au début de web.xml et ça marche maintenant !! Cependant, je certains caractères spéciaux comme ♫ sont modifiés avec des points d'interrogation? – Enrique

Questions connexes