[Java] JDBC-MySQL en character encoding

Pagina: 1
Acties:

  • Genoil
  • Registratie: Maart 2000
  • Laatst online: 12-11-2023
Toch maar even een nieuw topic over geopend, want hoewel ik met servlets bezig ben, zit het probleempje wat ik heb zeer waarschijnlijk bij JDBC-MySQL.
Ik heb een bestaande MySQL database, die ik oorspronkelijk met PHP aansprak. Daarin staan o.a. (tinytext) velden met woorden daarin als "Tröckener Kecks" en "Blöf". Als ik die gewoon met PHP er uit haal worden ze correct weergegeven, maar nu via JDBC-MySQL krijg ik "Tr?ckener Kecks" en "Bl?f". Ik dacht eerst dat het aan de servlet-engine lag, maar als ik die woorden gewoon "hard" in m'n gegenereerde HTML zet, werkt het prima. Is er een of andere manier hoe ik de ResultSet van m'n query moet bewerken zodat ze de juiste encoding krijgen?

  • bille
  • Registratie: Mei 2000
  • Laatst online: 06-09 17:10

bille

Don't call me Buff

wat je kan doen:
code:
1
2
3
4
5
6
Class.forName("xxxDrivername voor MySQLxxx"); //try to load the driver
            Properties props = new Properties();
            props.put("USER", _user);
            props.put("PASSWORD", _password);
            props.put("CHARSET", "iso15");
            setConnection(DriverManager.getConnection(_url, props));

Properties extends Hashtable, wel makkelijk om te gebruiken. Zet daar ff de Character encoding in en kijken wat ie doet. Voor Sybase gebruik ik dus iso15 maar wellicht dat je op de website van MySQL kan vinden welke character encoding zij gebruiken.

owja kijk ook ff hier: http://www.mysql.com/doc/C/h/Character_sets.html

Ultra Pilammo 6666Mhz AMD, 4251Mbit/s RAM, Gefors V6666 MegaTurbo, 43" TFS, Ultra 80Gig Firewire netwerkkaart en 5D geluid met 66 speakers in 5 dimensies


Verwijderd

Probeer eens "CP1252" of "ISO-8859-1".

  • Genoil
  • Registratie: Maart 2000
  • Laatst online: 12-11-2023
Bedankt voor de tips! Met de charset/characterEncoding property kwam ik er niet, maar useUnicode=true werkte wel:

conn = DriverManager.getConnection("jdbc:mysql://localhost/test?user=root&password=********&useUnicode=true");

Nu zal Chinees en Japans ook wel gaan denk ik :)