# Java > Dveloppement Web en Java > Servlets/JSP >  Problme d'encodage JSP

## dedeloux

Bonjour  tous,

Je sais que l'encodage est un problme rcurrent en java mais je n'ai pas trouv de solution pour rsoudre mon problme dans le forum.

Je bosse avec des pages JSP dans lesquelles j'ai la balise :


```

```

Je travaille galement avec Spring 2.5, Hibernate 3 et une base Oracle 9i.
Mon souci est donc que je n'arrive pas  afficher correctement les caractres accentus dans mes pages JSP.

Quand j'cris un caractre accentu dans ma page et que je l'enregistre dans ma base, j'obtiens un caractre bizarre  ::):  Par contre, si j'ajoute directement des caractres accentus dans ma base, ils sont correctements crits. Ce qui me laisserait penser que l'encodage de ma base est correct. Mais si c'est le cas, je ne vois pas ce que je dois rajouter pour que les caractres soient correctement pris en compte en java.

Est ce que quelqu'un pourrait m'aider  rsoudre ce mystre s'il vous plat ?

Merci par avance.
Audrey.

----------


## c_nvy

Jette un oeil  cette discussion. :;):

----------


## dedeloux

Merci de ta rponse c_nvy. 

En fait, j'avais dj jet un oeil  la FAQ hier, et j'avais vu cette solution que j'avais test mais sans succs. 

Pas plus de succs aujourd'hui  ::(: 

Comment est-ce que je peux savoir dans quel charset est encode une chane de caractres ?

Sinon, quelqu'un a t-il une autre ide ?  ::):

----------


## Tommy31

Tu mets des caractres accentus dans ta jsp, avec un encodage UTF-8. A la sauvegarde, ils doivent tre encods correctement. Sous eclipse, assure-toi que le _text file encoding_ de ton fichier est bien UTF-8 et pas l'encodage par dfaut.

Autre piste, Spring fourni un listener pour l'encodage. A placer dans web.xml:



```

```

----------


## link256

Si sa marche toujours pas reste cette solution
lorsque tu valides ton formulaire et avant l'enregistrement en base.

lorsque tu recupres les donnes request.getPameter("");
et que tu les traites avant insertion en base.

rajoute toi des petits Sysout voir si tu as deja perdu les caractres et savoir quel encodage leur a t appliqu 
 si utf-8 tu auras:  - > \u00e8 ,     ->  \u00e9

Et ensuite utilis URLEncode,URLDecode afin de rcuprer les donnes correcte et de les s'inserres.

----------


## dedeloux

Bonjour Tommy31, merci pour ta rponse.

J'ai bien vrifi que l'encodage de mes pages tait UTF-8 dans Eclipse. Pas de souci de ce ct l.

J'ai ajout le filtre que tu m'a montr dans le web.xml et toujours pas de changements, les accents ne s'affichent pas correctement parce qu'ils ne sont pas enregistr correctement dans ma base de donnes.

Est ce qu'il y a d'autre choses que je dois ajouter ?

----------


## link256

> Bonjour Tommy31, merci pour ta rponse.
> 
> J'ai bien vrifi que l'encodage de mes pages tait UTF-8 dans Eclipse. Pas de souci de ce ct l.
> 
> J'ai ajout le filtre que tu m'a montr dans le web.xml et toujours pas de changements, les accents ne s'affichent pas correctement parce qu'ils ne sont pas enregistr correctement dans ma base de donnes.


Je comprend plus l ^^

les donnes qui te pose problme se situe a quel niveau ?

tu rcupre des donnes de ta abse et losque tu les affichs les accents sautent car il ne sont pas prsent en base de donnes.

Ou se sont des donnes que tu as saisie dans ta jsp et qu'aprs validation et traitement du formulaire associ les accents sont rencode et disparaisse  l'enregistrement ?

----------


## dedeloux

Ce sont des donnes que je saisis dans des formulaires JSP et que j'enregistre dans ma base de donnes.

Lors de l'enregistrement, les accents sautent, ce qui fait que je retrouve avec des caractres bizarres dans ma base. Il doit avoir un truc qui cloche entre le submit et l'enregistrement.

Par contre, je n'utilise pas de "request.getParamater" pour rcuprer mes champs, je rcupre directement mes objets (user, site, ...) que j'ai "binds" dans le formulaire avec Spring.

----------


## dedeloux

J'ai test ce que tu m'avais dit link256 et fait un sysout sur les donnes que je rcupre avant l'enregistrement et elles ne sont dj pas bien encodes.

J'obtiens des caractres bizarres (du genre : ├├├) partout ou j'ai mis des accents.

Pourtant, j'ai bien prcis l'encodage dans ma page. Qu'est ce que je dois faire en plus ?

----------


## link256

J'ai pas encore eu l'occasion d'utilis Spring 
mais de ce que j'avais vu, tu passes directement ton objet user par exemple et il va alle faire les enregistrements en bases ?

tu n'as pas la possibilit de faire du traitement avant enregistrement en base et applique des 

```
URLDecode.decode(user.getNom,"UTF-8")
```

 sur chaque proprite de ton objet.

je suis pas sr de la syntaxe

----------


## dedeloux

J'ai essay ce que tu me proposais link256 et je n'obtiens rien de mieux ...

La syntaxe exacte est :


```
URLDecoder.decode(user.getLastname(),"UTF-8")
```

J'ai galement essay en encodant en UTF-8 et j'obtiens des %C23%...

J'ai utilis cette syntaxe :


```
URLEncoder.encode(user.getLastname(),"UTF-8")
```

Je ne sais pas comment me sortir de ce problme ...  ::(:  Pfff ! Tout a pour des accents  ::):

----------


## Tommy31

J'ai pas tout saisi. Corrige-moi si je me trompe.

Tu as un formulaire dans lequel tu saisis du texte avec accent, celui-ci est achemin ct serveur et stock en base. Le texte reu cot serveur n'a pas le bon encodage.

Si c'est bien cel. Je souhaiterais savoir le mcanisme que tu utilise pour invoquer le service ct serveur. Si c'est un post/get classique, tu peux scanner l'url transmise et surtout la faon dont sont encods les caractres. Tu peux t'aider du plugin firebug sous firefox pour cela.

A tout hasard, l o tu as mis le sysout fait ceci avant:



```

```

----------


## link256

> J'obtiens des caractres bizarres (du genre : ├├├) partout ou j'ai mis des accents.
> 
> Pourtant, j'ai bien prcis l'encodage dans ma page. Qu'est ce que je dois faire en plus ?


Tu obtiens les memes caractre en base ?

peux tu donnes le mot d'origine et celui que tu obtient pour trouver l'encode qui a t applique afin d'utilis le bon decodeur ^^

----------


## Tommy31

Allons plus loin dans la recherche du bon encodage:


```

```

L'une des entres affiches doit retranscrire sans faute le texte accentu.

----------


## dedeloux

Alors, 

J'envoie mes formulaires au serveur via un post. JE rcupre mes informations avec Spring dans mon controlleur comme a :


```

```

Dans mon web.xml, j'ai laiss le filtre de Spring:


```

```

J'ai utilis firebug pour scanner mon URL et les paramtres passs au serveur comme tu me l'avais conseill Tommy31. 

J'avais crit dans mon champ "Last Name" ces caractres "", j'obtiens dans ma requte ces caractres "éè". Ce sont ces caractres qui sont crits en base de donnes.

Pour information, j'ai fait un test en repassant le charset  ISO-8859-1 et je n'ai aucun, souci avec les accents.

En tout cas, c'est vraiment gentil de m'aider Tommy31 et link256  ::):

----------


## Tommy31

Et si tu mets ca dans ton entte JSP, celle du formulaire:



```

```

----------


## dedeloux

Ca ne change rien ...
J'avais a :


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

J'ai mis ce que tu m'as dit :

```
<%@ page language="java" pageEncoding="UTF-8"%>
```

Et j'ai mme essay a :

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

J'ai toujours le mme problme.
Une autre ide ? (je sais que j'en demande beaucoup l des ides !!!)

----------


## Tommy31

J'ai une dernire cartouche, mais je commence  m'puiser  ::aie:: :

As-tu vrifi que l'encodage dans le navigateur tait bien positionn  UTF-8 ? Si tel n'est pas le cas, le changer par le menu, puis re-soumettre le formulaire et voir si ca amliore les choses ?

----------


## link256

on va voir si ta derniere cartouche tait charge  blanc ou non  ::mrgreen:: 



dedeloux avais tu essay ?



```
URLEncoder.encode(user.getLastname(),"ISO-8859-1")
```

----------


## dedeloux

Alors le problme ne venait pas de l'encodage du navigateur  ::):  

Le souci venait du filtre Spring qui n'tait pas appliqu sur la page ...

Il a fallu que je modifie mon mapping pour le filtre j'ai maintenant ceci dans mon web.xml


```

```

Voil. En tout cas, merci vraiment pour votre aide et votre patience.
J'espre avoir l'occasion de vous aider aussi un jour  ::): 

Audrey.

----------


## link256

de rien, n'oublie pas le tag rsolu :p




> on va voir si ta derniere cartouche tait charge  blanc ou non


on n'aura jamais la rponse  ::aie::

----------

