Forum |  HardWare.fr | News | Articles | PC | Prix | S'identifier | S'inscrire | Shop Recherche
1825 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  [JDBC] problème d'encodage de caractères.

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[JDBC] problème d'encodage de caractères.

n°612834
cthulhu
Merci, merci...
Posté le 15-01-2004 à 18:35:57  profilanswer
 

Bonjour à tous,
 
voila le contexte:
 
Je récupère dans un fichier texte pure du sql et je l'exécute.
 
voici mon problème:
 
certain caractère ne sont pas reconnu et sont remplacé par des '?' comme le symbole '?' par exemple.
 
j'ai essayé de jouer sur la définition du charset sur la connexion avec les modification de codes suivantes:

Code :
  1. Properties props = new Properties();
  2.  props.put("characterEncoding", "UTF-8" );
  3.  props.put("useUnicode", "true" );
  4.  props.put("user", "root" );
  5.  props.put("password", "" );
  6.  return DriverManager.getConnection(
  7.    "jdbc:mysql://localhost/igwane",
  8. //    "root",
  9. //    ""
  10.    props
  11.  );


mais au mieux j'obtiens 'â?¬' pour '?'
 
Une idee?

mood
Publicité
Posté le 15-01-2004 à 18:35:57  profilanswer
 

n°612846
the real m​oins moins
Posté le 15-01-2004 à 18:44:40  profilanswer
 

ça serait pas la foutue console qui t'affiche mal les caracteres?  
essaie de faire un system.out.println du meme char pour voir ;)
 
un autre truc, tu dois specifier le meme encodage que celui utilisé par ta base hein, à priori
et t'as essayé l'ISO-8859-1 ?


Message édité par the real moins moins le 15-01-2004 à 18:47:32

---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°612865
cthulhu
Merci, merci...
Posté le 15-01-2004 à 19:01:07  profilanswer
 

hum, non, malheureusement c'est pas la console, jai le problème aussi en listant en php et en jdbc en essayant de récupéré le champ pour effectuer un traitement sur la chaîne :-\
 
je teste l'ISO-8859-1 mtn, merci de ta réponse ;)
 
edit: en fait je log la chaine que j'insere et le sql insert bien un '?' mais dès l'insertion si je browse la table en console ou en web jai soit '?' soit 'â?¬'


Message édité par cthulhu le 15-01-2004 à 19:10:43
n°612870
cthulhu
Merci, merci...
Posté le 15-01-2004 à 19:08:58  profilanswer
 

ca donne 'â?¬' pour '?'
avec le code:
 

Code :
  1. Properties props = new Properties();
  2.  props.put("characterEncoding", "ISO-8859-1" );
  3. //  props.put("characterEncoding", "UTF-8" );
  4.  props.put("useUnicode", "true" );
  5.  props.put("user", "root" );
  6.  props.put("password", "" );


Message édité par cthulhu le 15-01-2004 à 19:12:33
n°612871
uriel
blood pt.2
Posté le 15-01-2004 à 19:09:48  profilanswer
 

l'euro c'est pas ISO-8859-15 ?


---------------
IVG en france
n°612872
Predicator
Posté le 15-01-2004 à 19:10:41  profilanswer
 

uriel a écrit :

l'euro c'est pas ISO-8859-15 ?


 
si :jap:

n°612873
cthulhu
Merci, merci...
Posté le 15-01-2004 à 19:11:01  profilanswer
 

oki, jessaye :D

n°612875
benou
Posté le 15-01-2004 à 19:12:15  profilanswer
 

cthulhu a écrit :

certain caractère ne sont pas reconnu et sont remplacé par des '?' comme le symbole '?' par exemple.


C'est à dire ?
 
tu enregistres en jdbc le caractère '?' en base, puis quand tu le relis en JDBC, ca te renvois autre chose que '?' ???  :heink:  
 
Si c'est juste en faisant un select directe dans ta base que tu vois que l'affichage de ? n'est pas le bon, c'est normal : surement que l'utilitaire que tu utilises pour accéder à ta base n'utilise pas le même charset que celui que tu as utilisé avec JDBC


---------------
ma vie, mon oeuvre - HomePlayer
n°612878
benou
Posté le 15-01-2004 à 19:14:09  profilanswer
 

oups, t'as répondu entre temps je crois ... :/


---------------
ma vie, mon oeuvre - HomePlayer
n°612883
cthulhu
Merci, merci...
Posté le 15-01-2004 à 19:16:12  profilanswer
 

benou a écrit :


C'est à dire ?
 
tu enregistres en jdbc le caractère '?' en base, puis quand tu le relis en JDBC, ca te renvois autre chose que '?' ???  :heink:  


 
voila si tu veux je fais un insert ... '?'
et si juste après je fais un getString il me remballe '?'
 

benou a écrit :


Si c'est juste en faisant un select directe dans ta base que tu vois que l'affichage de ? n'est pas le bon, c'est normal : surement que l'utilitaire que tu utilises pour accéder à ta base n'utilise pas le même charset que celui que tu as utilisé avec JDBC


 
oui c surement un truc du genre, mais je vois pas pourquoi en utilisant la même connexion pour l'insertion et pour la selection il merdouille dans les caractères

mood
Publicité
Posté le 15-01-2004 à 19:16:12  profilanswer
 

n°612885
the real m​oins moins
Posté le 15-01-2004 à 19:17:29  profilanswer
 

j'ai déjà eu des merdes pas possibles avec mysql a ce sujet, jcomprenais rien... et d'un serveur a l'autre avec les memes drivers ça marchait ou pas ://
 
sinon pour l'iso, je pensais avoir écrit -15 ;)


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°612886
uriel
blood pt.2
Posté le 15-01-2004 à 19:17:38  profilanswer
 

cthulhu a écrit :


oui c surement un truc du genre, mais je vois pas pourquoi en utilisant la même connexion pour l'insertion et pour la selection il merdouille dans les caractères


 
si la base est pas encodé pareil, c'est normal, il te ressort ce qu'elle contient  [:spamafote] (tu peux lire directement ce qu'il y a dans la base?)


---------------
IVG en france
n°612889
benou
Posté le 15-01-2004 à 19:19:09  profilanswer
 

uriel a écrit :


si la base est pas encodé pareil, c'est normal, il te ressort ce qu'elle contient  


bha nan !
si il utilise le même encodage pour écrire et lire, quelque soit l'encodage de la base ca devrait marcher ...


---------------
ma vie, mon oeuvre - HomePlayer
n°612895
uriel
blood pt.2
Posté le 15-01-2004 à 19:21:12  profilanswer
 

benou a écrit :


bha nan !
si il utilise le même encodage pour écrire et lire, quelque soit l'encodage de la base ca devrait marcher ...


 
si la base reçoit un caractere qu'elle connait pas, elle va le transformer en autre chose  :??:


---------------
IVG en france
n°612896
benou
Posté le 15-01-2004 à 19:22:03  profilanswer
 

uriel a écrit :


 
si la base reçoit un caractere qu'elle connait pas, elle va le transformer en autre chose  :??:  


et alors ? elle le retransformera après à la lecture ...


---------------
ma vie, mon oeuvre - HomePlayer
n°612898
uriel
blood pt.2
Posté le 15-01-2004 à 19:24:48  profilanswer
 

benou a écrit :


et alors ? elle le retransformera après à la lecture ...


 
ah... ok...  :sweat:


---------------
IVG en france
n°612901
benou
Posté le 15-01-2004 à 19:25:38  profilanswer
 

uriel a écrit :


ah... ok...  :sweat:  


enfin logiquement quoi ... mais visiblement ca marche pas  :/


---------------
ma vie, mon oeuvre - HomePlayer
n°612902
cthulhu
Merci, merci...
Posté le 15-01-2004 à 19:25:44  profilanswer
 

pas si vite :D, je fais d'autres test et je vous tiens au courant ;)

n°612909
cthulhu
Merci, merci...
Posté le 15-01-2004 à 19:34:25  profilanswer
 

ok merci les gars,
 
ca marche en définissant l'encodage en "ISO-8859-15"
 
encore merci à tous, et pour la peine un petit '?' :D
 
a++
 

n°615926
Predicator
Posté le 19-01-2004 à 17:25:58  profilanswer
 

benou a écrit :


bha nan !
si il utilise le même encodage pour écrire et lire, quelque soit l'encodage de la base ca devrait marcher ...


 
non... quand tu écris dans la base, il transforme dans son charset. si le caractère n'y est pas, il le transforme...
ensuite à la lecture, il passe bêtement ce qu'il a écrit à JDBC... en général, une base est en LATIN1, LATIN15 ou Unicode, et Java utilise Unicode... si tu écrit un caractère Unicode dans une base, il sera transformé dans un truc du genre 'é', et ensuite, Java le copie en Unicode. les deux caractères existant bien en Unicode, il récupère 'é'...
 
de toute façon j'arrive un peu tard, tant pis :D


Message édité par Predicator le 19-01-2004 à 17:26:13
n°616307
cthulhu
Merci, merci...
Posté le 20-01-2004 à 09:15:18  profilanswer
 

un peu tard, oui, mais c'était une précision utile, et maintenant je comprends mieux mon problème.
 
Donc, merci ;)

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  [JDBC] problème d'encodage de caractères.

 

Sujets relatifs
problème de socket client --> bloquantes ou pasProblème de "!" dans un mail envoyé en php
[java swing] probleme de taille avec un JTextField[XML/XSL]génération d'un XML a partir d'un XML par XSL probleme
Problème install VirtualTreeViewProbleme de Charset sous Windows et pas sous Unix
url rewriting --> problème (avec mon serveur).Probleme avec la fct bcdiv()
[Sql] Problème sur croisement de tablesProblême de concept - Comment gerer des catégories ?
Plus de sujets relatifs à : [JDBC] problème d'encodage de caractères.


Copyright © 1997-2018 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR