Java: stocker texte arabe dans la base de données

Résolu
betty555 Messages postés 38 Date d'inscription mercredi 17 janvier 2007 Statut Membre Dernière intervention 6 juillet 2010 - 3 nov. 2009 à 12:47
betty555 Messages postés 38 Date d'inscription mercredi 17 janvier 2007 Statut Membre Dernière intervention 6 juillet 2010 - 9 nov. 2009 à 13:21
J'essaie de stocker un texte en arabe dans la base de données.
J'essaie de tester directement en envoyant la requête url: http://localhost:9080/ma-webapp/OuvrierServlet?req=creationO&nom=ãÍÓä

le paramètre req: c'est le type de requête: creation ouvrier
le paramètre nom: c'est le nom de l'ouvrier qui est en arabe
Dans la bd il y a des ???? dans le champ correspondant au nom.

J'ai modifié ma page jsp, on mettant:
<%@ page language="java" contentType="text/xml;charset=UTF-8" pageEncoding="UTF-8"%> ainsi que encoding du .xml

En passant par le debug, c'est avant l'appel de ma dao pour l'insertion en base, c'est à dire c'est au moment de la récuperation du paramètre, ...getParameter("nom"); est sous la forme ????

Pourriez vous m'éclairer sur ce sujet Svp.

D'avance Merci.
A voir également:

7 réponses

betty555 Messages postés 38 Date d'inscription mercredi 17 janvier 2007 Statut Membre Dernière intervention 6 juillet 2010
9 nov. 2009 à 13:21
Bonjour,

Le problème était la configuration de ma base de données.

Pour visualiser l'encodage de la base de données:

Select * from nls_database_parameters;

Pour modifier l'encodage de la base de données:

ALTER DATABASE DEFAULT CHARACTER SET UTF8;
3
kirua12 Messages postés 1155 Date d'inscription samedi 17 janvier 2004 Statut Membre Dernière intervention 29 avril 2011 7
4 nov. 2009 à 12:04
Sans bonjour, point de salut.

Quel est l'encoding de ta base ?
0
betty555 Messages postés 38 Date d'inscription mercredi 17 janvier 2007 Statut Membre Dernière intervention 6 juillet 2010
4 nov. 2009 à 15:58
Je m'excuse..

Bonjour,

j'ai configuré l'encodage dans oracle sql developper, tools ==> preferences ==> environ ==> encoding UTF8

(==>Putty==>sqlplus) je me connecte sur la base:
j'execute la requête suivante:
SQL> update ouvrier
2 set
3 nom = N'TexteEnArabe'
4 where id=18
5 ;
Quand je visualise la table sous Oracle Sql Developper, il y a dans le champs ouvrier des caractères ٿجٿة --- avant c'etait des ??? à l'envers...

j'ai effectué la requête suivante aussi afin de changer l'encodage de la colonne nom:

SQL> alter table ouvrier
2 default character set utf8;
default character set utf8
*
ERROR at line 2:
Mais j'ai cette erreur (ORA-30649: missing DIRECTORY keyword)

Je crois que l'encodage est bien configuré, puisque, quand j'insère un mot en arabe directement à l'aide d'Oracle sql developper "En double cliquant sur le champ du nom et en collant un texte en arabe", le texte s'insère sans problème, et l'affichage est bon, et je peux même le visualiser avec une requête select..

Je m'excuse encore une fois pour le -Bonjour.

Merci pour ta réponse..
0
kirua12 Messages postés 1155 Date d'inscription samedi 17 janvier 2004 Statut Membre Dernière intervention 29 avril 2011 7
4 nov. 2009 à 16:12
le texte que tu as inséré par copier/coller est visible correctement dans ton application ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
betty555 Messages postés 38 Date d'inscription mercredi 17 janvier 2007 Statut Membre Dernière intervention 6 juillet 2010
4 nov. 2009 à 16:15
Oui c'est visible sous Oracle Sql Dev.

Mais à l'aide d'une requête d'insertion ce n'est pas visible.
0
kirua12 Messages postés 1155 Date d'inscription samedi 17 janvier 2004 Statut Membre Dernière intervention 29 avril 2011 7
4 nov. 2009 à 16:39
je me suis mal exprimé, c'est lisible dans la page JSP ?
0
betty555 Messages postés 38 Date d'inscription mercredi 17 janvier 2007 Statut Membre Dernière intervention 6 juillet 2010
4 nov. 2009 à 16:51
Oui c'est visible, j'ai déclaré le nom en dur, et je lui ai affecté l'unicode: "\u0646\u0647\u0649".. juste pour voir si l'insertion s'effectue.
dqns la requête sql je vois bien le mot en arabe, mais c'est au moment de l'insertion que ca marche pas..

Peut que la configuration de la base en utf8 n'est pas configurée...

ce que j'ai effectué tout à l'heure c'est juste pour l'interface de sql developper, donc c'est normal quand j'effectue un copier coller, le champ en arabe soit visible. non?

Comment je peux connaître l'encodage de la base (Commande)?

Merci,
0
Rejoignez-nous