Problem mit Zeichenkodierung in Java

Java kann Dir auch nur den Schrott anzeigen, der in der Datenbank steht.

Woher hast Du die Information, dass der ACII-Zeichensatz auch deutsche Umlaute enthält? :confused:

Zeichen wurden in Java schon immer im UNICODE verarbeitet.

Zum Thema ENCODING in Java findest Du unter Java ist auch eine Insel – 4.6 Zeichenkodierungen weitere Informationen.



mfg

fristo

Hi, versuch mal diese Änderungen an deinem Connectionstring

String url = “jdbc: postgresql://my_host/testdb”;

Properties props = new Properties();
props.setProperty(“user”,“a_user”);
props.setProperty(“password”,“a_password”);
props.setProperty(“ssl”,“false”);
props.setProperty(“charset”,“ascii”);

Connection conn = DriverManager.getConnection(url, props);

String url = “jdbc: postgresql://localhost/test?user=fred&password=secret&ssl=true”;
Connection conn = DriverManager.getConnection(url);

Was an dem hier geschilderten Problem eigenartig ist, das man in eine Datenbank mit der Kodierung SQL-ASCII offensichtlich Daten einfügen kann, die Zeichen enthalten, welche nicht im ASCII-Zeichensatz enthalten sind. Der Versuch sollte eigentlich mit einer Fehlermeldung von der Datenbank enden, anderenfalls wäre ein BUG vorhanden.



mfg

fristo

ASCII nimmt keine Kodierung (und anscheinend auch keine Prüfung) vor sondern schiebt einfach alles als 8 Bit durch. Ob das Zeichen nun ein UTF8 Zeichen mit 16 Bit Länge wäre oder nicht, ist dabei egal … es sind dann 2 x 8 Bit.