-
Encoder en UTF-8 (euro)
Bonjour a tous.
J'ai un petit soucis, Je poste sur un formulaire une chaine contenant le symbole €.
Quand mon serveur reçoit la chaine je la converti comme suit
Code:
new String(req.getParameter(param).getBytes(),"UTF-8")
Le problème c'est que tout se passe bien sauf pour le symbole €.
Par exemple en entrée j'ai ceci : "€ é à"
Mon serveur récupère ceci : â?¬ é Ã
Et après conversion j'ai ceci : ??? é à
Je suis perdu .
Est ce que quelqu'un a une petite idée ?
-
Première remarque : on n'utilise jamais getBytes().
On utilise getBytes("iso-8859-1") ou getBytes("utf-8") ou autre chose, mais jamais getBytes(). Parce que cela dépend de l'encodage par défaut de la machine et que cela change d'une machine à l'autre.
Deuxième remarque : vu tes résultats, ton serveur récupère € é à. C'est juste que tu te trompes (toi ou tes outils) de manière de l'afficher. Tu affiches du utf-8 comme si c'était du iso-8859-1.
Réponse : la ligne que tu nous montres est inutile, dans ton cas elle ne fait rien, dans d'autres cas elle ne peut que poser problème.
Vire-là. Utilise juste req.getParameter(param)
Ce que tu obtiens après conversion s'affiche mal parce que la technologie qui l'affiche ne gère pas le caractère euro. Change-en.
-
Merci de ta réponse !
Comme un gros nul j'ai pas fait attention au paramètre de getBytes().
J'ai mis en paramètre "iso-8859-1" et la ça marche !
Étrange cependant , mes pages contenant mes formulaires sont en UTF-8 ...
Le principal c'est que ça marche .
Encore merci.