Je suis en train de développer une application qui devrait fonctionner dans différentes langues (allemand, espagnol, etc.). L'application utilise une base de données Oracle. J'ai des processus d'affaires CRUD et j'ai les vues standard (créer, éditer, montrer, liste). Aucun problème pour créer, afficher et répertorier tout enregistrement contenant des caractères spéciaux comme ä, ö, ü, etc. Mais lorsque j'édite une entrée contenant un de ces caractères, je reçois la version codée . c'est-à-dire & auml; au lieu de ä & ouml; au lieu de & uuml; au lieu deProblème de codage sous Groovy
et ainsi de suite.
Un indice pour résoudre ce problème?
Merci!
MISE À JOUR Merci pour votre aide. Je vais décrire le scénario complet:
J'ai une application web écrite en grails (groovy on grails). Pour le développement, j'utilise Jetty comme serveur et Oracle 10g. Pour tester et produire j'utilise Tomcat 6.0.18 et Oracle 10g La version Java est 1.6.0_02
J'ai beaucoup de processus CRUD (créer, extraire, mettre à jour, supprimer). L'application est multilingue. C'est-à-dire que les lettres (caractères) doivent être autorisées en tant que contenu.
Les vues sont écrites en gsp. J'utilise les vues .gsp standard (créer, éditer, montrer, liste). Pas de problème avec créer, montrer, liste. Autrement dit, si sous la vue de créer de type I un mot à l'aide des caractères spéciaux, alors ce sera affiché ou cotées correctement sous la show.gsp ou list.gsp
Le problème se pose lors de la modification d'un enregistrement contenant ces caractères. Au lieu de -l'on dit-ä apparaît dans le champ un & auml; (Ceci est l'encodage html de ä).
J'ai les paramètres suivants:
sous Config.groovy grails.views.gsp.encoding = "UTF-8" grails.converters.encoding = "UTF-8"
Chaque. la page gsp a la balise meta suivante:
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" pageEncoding="UTF-8"/>
Chaque forme a l'attribut suivant:
<g:form accept-charset="UTF-8" method="post" >
Sous Tomcat, j'ai effectué les réglages suivants.
tomcat est démarré avec les options suivantes:
CATALINA_OPTS=-Dfile.encoding=UTF-8
JAVA_OPTS="-Duser.language=de -Duser.country=DE"
Sous web.xml Je mis le filtre suivant
<filter>
<filter-name>SetCharacterEncoding</filter-name>
<filter-class>filters.SetCharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
Sous monApplication/WEB-INF/classes/filtres je copiais le SetCharacterEncodingFilter.class d'exemples/WEB-INF/classes/filtres
Sous server.xml I a fixé les connecteur suivant:
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" URIEncoding="UTF-8" useBodyEncodingForURI="UTF-8" />
Le scénario est le suivant: Le serveur reçoit une demande d'édition d'un formulaire. Le serveur récupère les informations de la base de données et puis la base de données envoie l'information déjà codée en HTML (je ne pense pas) ou le serveur l'encodage et l'envoie codé au client.
En outre, à mon contrôleur, je peux voir que les informations récupérées à partir du serveur n'est pas html codé.
Je ne sais pas quel paramètre doit être fait pour faire face à ce problème d'encodage (ce qui me prend beaucoup, beaucoup de temps et d'efforts).
Merci beaucoup d'avance.
Luis
Si vous plus sur le Elaboré problème spécifique, je peux être en mesure d'aider. "lorsque je modifie une entrée contenant un de ces caractères je suis" que voulez-vous dire par là? Modifier comment? Est-ce un webui? Si c'est le cas, assurez-vous d'utiliser également utf-8. http://java.sun.com/javaee/5/docs/api/javax/servlet/ServletRequest.html#setCharacterEncoding(java.lang.String) http://java.sun.com/javaee/ 5/docs/api/javax/servlet/ServletResponse.html # setCharacterEncoding (java.lang.Chaîne) Ces deux paramètres peuvent également être configurés dans votre conteneur. – andersonbd1