problème d'encodage de caractères. [JDBC] - Java - Programmation
Marsh Posté le 15-01-2004 à 18:44:40
ç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 ?
Marsh Posté le 15-01-2004 à 19:01:07
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 'â?¬'
Marsh Posté le 15-01-2004 à 19:08:58
ca donne 'â?¬' pour '?'
avec le code:
Code :
|
Marsh Posté le 15-01-2004 à 19:09:48
ReplyMarsh Posté le 15-01-2004 à 19:12:15
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 '?' ???
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
Marsh Posté le 15-01-2004 à 19:14:09
ReplyMarsh Posté le 15-01-2004 à 19:16:12
benou a écrit : |
voila si tu veux je fais un insert ... '?'
et si juste après je fais un getString il me remballe '?'
benou 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
Marsh Posté le 15-01-2004 à 19:17:29
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
Marsh Posté le 15-01-2004 à 19:17:38
cthulhu a écrit : |
si la base est pas encodé pareil, c'est normal, il te ressort ce qu'elle contient (tu peux lire directement ce qu'il y a dans la base?)
Marsh Posté le 15-01-2004 à 19:19:09
uriel 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 ...
Marsh Posté le 15-01-2004 à 19:21:12
benou a écrit : |
si la base reçoit un caractere qu'elle connait pas, elle va le transformer en autre chose
Marsh Posté le 15-01-2004 à 19:22:03
uriel a écrit : |
et alors ? elle le retransformera après à la lecture ...
Marsh Posté le 15-01-2004 à 19:24:48
benou a écrit : |
ah... ok...
Marsh Posté le 15-01-2004 à 19:25:38
uriel a écrit : |
enfin logiquement quoi ... mais visiblement ca marche pas
Marsh Posté le 15-01-2004 à 19:25:44
pas si vite , je fais d'autres test et je vous tiens au courant
Marsh Posté le 15-01-2004 à 19:34:25
ok merci les gars,
ca marche en définissant l'encodage en "ISO-8859-15"
encore merci à tous, et pour la peine un petit '?'
a++
Marsh Posté le 19-01-2004 à 17:25:58
benou a écrit : |
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
Marsh Posté le 20-01-2004 à 09:15:18
un peu tard, oui, mais c'était une précision utile, et maintenant je comprends mieux mon problème.
Donc, merci
Marsh Posté le 15-01-2004 à 18:35:57
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:
mais au mieux j'obtiens 'â?¬' pour '?'
Une idee?