Forum Ametys

Forum de la communauté Ametys

You are not logged in.

#1 17/06/2014 12:05:32

frigoku
Guest
Registered: 21/02/2014
Posts: 18

Problème d'encodage plugin

Bonjour,

J'ai développé un plugin avec un formulaire qui permet d'interroger une base de donnée en fonction des données saisies par l'utilisateur.

Je me rends compte que quand on choisit une ville, un département ou une région avec un accent, la recherche ne renvoie rien.

Après analyse, je m'aperçois que quand j'envoie par exemple "Achères" comme ville dans le formulaire, parameters.getParameter("ville", ""); de mon générateur récupère en fait : "Achères".

Je récupère cette donnée de mon sitemap.xmap de cette façon :
<map:parameter name="ville" value="{request-param:ville}" />

Et sitemap commence bien par :
<?xml version="1.0" encoding="UTF-8"?>

De plus, mon URL est bien formée :
recherche-immo.html?typRech=louer&reg=Bourgogne&dep=&ville=Achères&sMin=&sMax=&bMin=&bMax=&mobRed=0&t=date&p=1

Voyez-vous d'où peut provenir le souci?

Par avance, merci.

Cordialement,

Offline

#2 17/06/2014 12:19:08

Raphaël Franchet
Expert Team
From: Toulouse
Registered: 10/08/2010
Posts: 1,111

Re: Problème d'encodage plugin

Bonjour, Ametys est codé en UTF-8 et il faut en effet privilégier l'UTF-8 partout.
L'UTF-8 en haut de la sitemap signifie juste que le fichier de sitemap est écrit en UTF-8 et pas qu'il va travailler en UTF-8.
C'est vraisemblablement la configuration de Tomcat plutôt ou de JAVA.

Si vous utilisez Tomcat, rendez-vous dans le fichier de configuration et vérifiez que le <connector> que vous utilisez possède bien URIEncoding="UTF-8".
Voici un extrait de mon server.xml

<Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" URIEncoding="UTF-8"/>

Ensuite cela peut-être dû au système de fichier. Dans le script de lancement de tomcat ou jetty, il convient alors d'ajouter -Dfile.encoding=UTF-8

Après, mais ça n'a pas l'air d'être le cas, il peut y avoir des problèmes avec la connexion à la base de donnée. J'ai déjà eu des bases codées en ISO-8859-1 mais déclarées en UTF-8.... mais c'est rare et provient d'exports/imports ratés.

Merci de me dire si ces solutions résolvent le problème.


Raphael Franchet
Expert Ametys

Offline

#3 17/06/2014 14:37:23

frigoku
Guest
Registered: 21/02/2014
Posts: 18

Re: Problème d'encodage plugin

Bonjour,

Tous nos fichiers sont en UTF-8.
Notre server.xml est bien paramètré :

<Connector port="8080" protocol="HTTP/1.1"
          URIencoding="UTF-8"
               connectionTimeout="20000"
               redirectPort="8443" />

Au niveau du lancement de notre serveur, on a bien "-Dfile.encoding=UTF-8" et ça ne peut pas venir de la base car la connexion à la base n'est pas encore faite au moment où le problème se produit.

C'est vraiment le passage de la xsl par le sitemap qui fait planter l'encodage.

Offline

#4 17/06/2014 15:30:39

Raphaël Franchet
Expert Team
From: Toulouse
Registered: 10/08/2010
Posts: 1,111

Re: Problème d'encodage plugin

Dans l'admin du cms (par exemple http://localhost:8080/cms/_admin, dans l'icone "Etat du système" vous trouverez en haut à droite "Propriétés système" qui vous affiche toutes les propriétés de java. Verifiez que tous les encodages sont bien en UTF-8.

Est-ce qu'il y a un Apache devant le Tomcat ? Si oui, verifiez qu'il ait bien l'instruction

AddDefaultCharset     UTF-8

Vous pouvez aussi, même si ça ne doit avoir aucune influence, remplacer la transmission à la XSL du paramètre de requête : ne plus passer par la sitemap, mais directement en xsl faire :

ametys:requestParameter('test')

Voir ici :


Raphael Franchet
Expert Ametys

Offline

#5 17/06/2014 17:24:23

frigoku
Guest
Registered: 21/02/2014
Posts: 18

Re: Problème d'encodage plugin

J'ai vérifié le tout et c'est bien configuré.

Point important, mon formulaire est en "GET". En le passant en "POST", je n'ai plus de soucis d'encodage que e soit dans mon générateur ou en retour de générateur.

Avez-vous connaissance d'un problème sur les "method=GET" des formulaires?

Offline

#6 17/06/2014 17:30:03

Raphaël Franchet
Expert Team
From: Toulouse
Registered: 10/08/2010
Posts: 1,111

Re: Problème d'encodage plugin

Non, pas à ma connaissance, mais c'est vrai qu'on fait des POST la plupart du temps ; et là de mémoire vous avez vérifié tous les réglages nécessaire.
C'est sur un linux ? un windows ?

J'imagine que dans votre cas, vous ne souhaitez pas faire de POST ?


Raphael Franchet
Expert Ametys

Offline

#7 17/06/2014 17:40:40

frigoku
Guest
Registered: 21/02/2014
Posts: 18

Re: Problème d'encodage plugin

C'est sur un Linux.

J'aimerais garder le "GET" et surtout comprendre d'où ça vient au cas où mais là, ça commence à devenir compliqué de trouver l'origine.

Last edited by frigoku (17/06/2014 17:40:58)

Offline

#8 17/06/2014 20:41:42

Cédric Damioli
Ametys Product Manager
From: Toulouse
Registered: 10/08/2010
Posts: 321

Re: Problème d'encodage plugin

frigoku wrote:

De plus, mon URL est bien formée :
recherche-immo.html?typRech=louer&reg=Bourgogne&dep=&ville=Achères&sMin=&sMax=&bMin=&bMax=&mobRed=0&t=date&p=1

Pour moi, cette URL n'est pas syntaxiquement correcte, on a théoriquement pas le droit d'avoir des caractères non-ASCII dans une URL (même si dans la pratique les navigateurs l'acceptent quand même).
L'URL correcte en UTF-8 devrait être :

recherche-immo.html?typRech=louer&reg=Bourgogne&dep=&ville=Ach%C3%A9res&sMin=&sMax=&bMin=&bMax=&mobRed=0&t=date&p=1

Cédric

Offline

#9 18/06/2014 09:12:30

frigoku
Guest
Registered: 21/02/2014
Posts: 18

Re: Problème d'encodage plugin

Bonjour,

En effet, je me suis trompé dans ce que je vous ai copié.
Le bout d'url est ce que montre Chrome / FF mais si je regarde le header de la requête directement on voit que que l'encodage se fait bien :

Request URL:http://localhost:8081/.../recherche-immo.html?typRech=louer&reg=&dep=&ville=Ach%C3%A8res&sMin=&sMax=&bMin=&bMax=&mobRed=0&t=date&p=1

edit : je vais passer mon formulaire en POST pour régler le souci. Tant pis.

Je vous remercies pour votre aide.

Last edited by frigoku (18/06/2014 09:23:53)

Offline

Board footer

Powered by FluxBB