Java: stocker texte arabe dans la base de données [Résolu]

betty555 38 Messages postés mercredi 17 janvier 2007Date d'inscription 6 juillet 2010 Dernière intervention - 3 nov. 2009 à 12:47 - Dernière réponse : betty555 38 Messages postés mercredi 17 janvier 2007Date d'inscription 6 juillet 2010 Dernière intervention
- 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.
Afficher la suite 

Votre réponse

7 réponses

Meilleure réponse
betty555 38 Messages postés mercredi 17 janvier 2007Date d'inscription 6 juillet 2010 Dernière intervention - 9 nov. 2009 à 13:21
3
Merci
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;

Merci betty555 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 102 internautes ce mois-ci

Commenter la réponse de betty555
kirua12 1155 Messages postés samedi 17 janvier 2004Date d'inscription 29 avril 2011 Dernière intervention - 4 nov. 2009 à 12:04
0
Merci
Sans bonjour, point de salut.

Quel est l'encoding de ta base ?
Commenter la réponse de kirua12
betty555 38 Messages postés mercredi 17 janvier 2007Date d'inscription 6 juillet 2010 Dernière intervention - 4 nov. 2009 à 15:58
0
Merci
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..
Commenter la réponse de betty555
kirua12 1155 Messages postés samedi 17 janvier 2004Date d'inscription 29 avril 2011 Dernière intervention - 4 nov. 2009 à 16:12
0
Merci
le texte que tu as inséré par copier/coller est visible correctement dans ton application ?
Commenter la réponse de kirua12
betty555 38 Messages postés mercredi 17 janvier 2007Date d'inscription 6 juillet 2010 Dernière intervention - 4 nov. 2009 à 16:15
0
Merci
Oui c'est visible sous Oracle Sql Dev.

Mais à l'aide d'une requête d'insertion ce n'est pas visible.
Commenter la réponse de betty555
kirua12 1155 Messages postés samedi 17 janvier 2004Date d'inscription 29 avril 2011 Dernière intervention - 4 nov. 2009 à 16:39
0
Merci
je me suis mal exprimé, c'est lisible dans la page JSP ?
Commenter la réponse de kirua12
betty555 38 Messages postés mercredi 17 janvier 2007Date d'inscription 6 juillet 2010 Dernière intervention - 4 nov. 2009 à 16:51
0
Merci
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,
Commenter la réponse de betty555

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.