Bonjour,
Je suis étonné de n'avoir trouvé aucun sujet à ce propos sur developpez.net, et encore plus sur google (suis-je le seul à avoir rencontré ce problème ? les résultats de mes recherches sur google me laissent le penser ...).
Lorsque j'insère le caractère € dans ma table, et que je le ressors (INSERT INTO .... suivi d'un SELECT), je ne retrouve pas un € mais un ? (ou un carré).
Mieux: sur une de mes tables en particulier, si j'utilise un Statement ordinaire, l'euro est modifié, mais si j'utilise un PreparedStatement avec un setString pour insérer mon € dans ma requête, l'euro est inséré correctement ! (sur mes autres tables je suis dans les choux quand-même). En quoi ces 2 méthodes diffèrent-elles ?
Mon administrateur DB2 est frileux, et ne souhaite pas se risquer à modifier les tables de transcodage (les tables sont d'après lui toutes en EBCDIC, mais il n'a pas précisé quelle "version" d'EBCDIC -car parait-il qu'il y en a eu un certain nombre ...).
La question suivante en découle :
- A quel niveau est défini un charset ? Table ? Tablespace ? Schema ? Base de données toute entière (là je suis cuit) ? Système (et là encore plus) ?
J'aimerais simplement avoir des tables capables de recevoir proprement n'importe quel caractère, mais apparement ca a l'air plus compliqué que de simplement tout sauvegarder, dropper et recréer la table avec un charset différent (dont les tables de transcodage sont à jour). Il existe même un charset UTF-EBCDIC (http://fr.wikipedia.org/wiki/UTF-EBCDIC), si vraiment il faut garder du tout-EBCDIC.
Si quelqu'un a un tuyeau pour moi je suis preneur (je suis même étonné que depuis 5 ans d'existence de l'€uro, personne ne se soit soucié du problème ... -dans mon entreprise çela va de soi ^^).
(Je précise que sur mon DB2 v8.2 sur windows, les tables sont en IBM-1252, et que je n'ai aucun problème avec).
Partager