2016-03-29 2 views
1

Bonne journée,passer jsp vietnamien fichier de classe java

J'ai essayé de google sur ce sujet, mais ne parviennent pas à obtenir toute suggestion/solution connexe. Je pense que ma question peut être trompeuse.

Dans ma page jsp, j'ai une zone de texte zone d'entrée:

<s:textarea name="errorMessage.message" maxlength="500"/> 

Lorsque je clique sur le bouton de mise à jour, mon application Java obtenir ce errorMessage.message et stocker dans db.

Cela fonctionne très bien si l'utilisateur touche un caractère anglais. Mais si je clique en vietnamien, il se tournera vers un autre symbole bizarre dans mon fichier Java. Par exemple, entrée utilisateur siêu nhân, il deviendra siêu nhân. Mais si je le code dur dans un fichier java, alors il fonctionne bien et je peux stocker le vietnamien correctement dans DB également.

errorMessage.setMessage("siêu nhân"); 

System.out.println("now message is " + errorMessage.getMessage()); \\ this print correctly in my console 

I a été essayé:

getRequest().setCharacterEncoding("UTF-8"); 

<%@page pageEncoding="UTF-8"%> 

Mais toujours le même problème, veuillez en informer.

+0

De quel jar utilisez-vous pour vous connecter à db2 ** db2jcc4.jar ** ou ** db2jcc4.jar **? – Shaunak

+0

@Shaunak, j'utilise seulement 'db2jcc4.jar' quand j'exécute le lot de printemps. Au niveau de l'application Web, je crois que je me connecte à db2 en configurant le paramètre dans la console IBM WAS, au niveau 'Resources',' JDBC'. –

+0

Apparemment, une transformation UTF-8 est appliquée. Le jeu de caractères ISO ne peut pas représenter tous les caractères multi-accentués. Par exemple. 'Phở' montrera comme' Phá 'Ÿ'. Assurez-vous que votre application stocke et affiche la chaîne comme UTF-8 – Stavr00

Répondre

1

Enfin je reçois une solution:

Solution 1 (applicable uniquement pour 1 entrée):

try { 
     byte[] bytes = test.getBytes("ISO-8859-1"); 
     test = new String(bytes, "UTF-8"); 
    } catch (UnsupportedEncodingException e) { 
    // TODO Auto-generated catch block 
    e.printStackTrace(); 
} 

Solution 2 (Appliquer pour le système entier):

J'utilise WAS, donc aller à la console WAS, Serveurs d'application> SITSMESCAPP01a> Définition de processus> Machine virtuelle Java,

Ajouter -Dclient.encoding.override=UTF-8 dans les arguments JVM génériques.

Redémarrez le serveur.