JAVA Access sonderzeichen problem

programma

Mitglied
Hallo,

ich habe ein Wörterbuch in Java geschrieben die auch die türkischen Buchstaben beinhalten.

c mit strich unten ....
wenn ich nun diese türkischen buchstaben in die Access DB tabelle einfüge trägt er das nur mit einem ? ein.
Weiss vielleicht einer wie man so ein problem beheben kann?
also ich hab im Debug modus gesehen die einzelnen buchstaben werden korrekt übergeben ich denke es liegt wirklich an Access aber vielleicht muss da nur eine einstellung getätigt werden oder so

Würde mich über eine Antwort freuen.
MFG
Programma
 
Das hört sich für mich stark nach einem Charset-Problem an.
Versuch mal folgendes: konvertier vor deinem Insert deinen Text nach UTF-8 und führ dann den Insert aus.

Gruss, Manuel
 
hallo wie konvertiere ich das denn?


zb.: insert into tabelle(nr,wort1,wort2)values(nr,wort1,wort2)

also ich habe eine Methode die von mir das Wort als parameter bekommt als String.

ich habe also
String wort1
und String wort2

wie konvertiere ich das jetzt um?

Mit freundlichem Gruß
programma
 
Schau mal hier

Btw: habe gerade gesehen, dass JAVA Strings defaultmäßig erstmal als UTF-16 behandelt und gestern gelesen, dass Access, bzw. besser gesagt die JDBC-ODBC Bridge für Access mit UTF-16 so seine Probleme hat. Probier es mal mit UTF-8

Gruss, Manuel
 
Man muss beim herstellen der Verbindung das Charset mit übergeben.

Java:
Properties props = new Properties();
props.put ("charSet", "UTF8");
Connection conn = DriverManager.getConnection(url,props);

Das wichtige bei Access ist dass dieses eigentlich gar nicht mit Unicode zurecht kommt. Du kannst es zwar drin speichern aber Access wird es nicht anzeigen (sondern entsprechend ? o.ä.). Beim Speichern ist vor allem zu beachten dass die Feldlänge in ASCII berechnet wird und man für Unicode diese entsprechend mit 4 o.ä. multiplizieren sollte. Ansonsten schneidet Access den eingefügten Unicode-String einfach bei der angegebenen Feldlänge ab und meldet nicht mal einen Fehler.
 
Zurück