Unicode Zeichensatz

Hi,

ich hab ein Problem, was das speichern von Kyrillischen Zeichen angeht. Ich hab auch hier im Forum schon nachgeschaut. Hab auch alles gemacht, dass es eigentlich funktionieren sollte. Klappt aber nicht.

Also ich will über Java in die Datenbank alles mögliche speichern können, dazu gehören auch kyrillische Zeichen. Server und Client Encoding sind auf UTF8 eingestellt. Aber der speichert immer ein Fragezeichen in die Tabelle.

“Hab alles gemacht” ist keine sinnvolle Beschreibung für das, was Du genau gemacht hast, und “Klappt aber nicht” ist keine verwertbare Fehlermeldung.

Vielleicht wäre es für Dich zielführend, mal exakt zu sagen,

  • welche PG-Version und OS
  • was Du eingestellt hast (Optionen beim erstellen der DB etc.)
  • wie Du die Zeichen eingibst (welches Programm etc.)
  • ob und wenn ja welche Fehlermeldungen
  • ein ‘\d table’ und ein ‘select utf8-col from table’ zeigen

Hint: bei solchen Problemen fängt man erst mal low-level an zu suchen, also direkt in der Tabelle, was dort für Daten sind. Vielleicht hast Du dort schon korrektes UTF8 und nur Deine Clientanzeige ist kapott. Oder, oder, oder…

  • Also Postgres(8.0.3) ist auf windows installiert.
  • db hab ich erstellt indem ich das encoding auf utf8 eingestellt habe
  • ich gib die Zeichen über ein simples Java - Programm ein was ich unten angehängt habe (ich hab das Zeichen einfach von der Windows Zeichentabelle kopiert und eingefügt.)
  • Fehlermeldung keine. Speichert jedes kyrillische Zeichen als Fragezeichen
  • Bei dem letzten Punkt versteh ich nicht was du meinst.

try{
Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver”);
}catch(ClassNotFoundException e){
System.out.println(“Fehler bei ODBC-JDBC-Bridge”+e);
}

try{
Connection con= DriverManager.getConnection(“jdbc :astonished: dbc:PostgreSQL”,“postgres”,“postgres”);
Statement an=con.createStatement();
an.executeUpdate(“INSERT INTO test VALUES(‘д’)”);
an.close();
con.close();
}catch (SQLException s){
System.out.println(s.getMessage());
}

http://pginstaller.projects.postgresql.org/faq/FAQ_windows.html, Punkt 2.6

Heißt das jetzt das PG 8.0.3 nicht mit dem Unicode von Windows klar kommt. Das heißt ich muss PG 8.1 installieren. Versteh ich das richtig.

Offensichtlich. Ich nix Windows. Aber was genau spricht dagegen, 8.1 zu installieren? Oder gleich 8.2?

Dann versuch ich das jetzt.

So. Hab die neueste Version von PG installiert. Während der Installation hab ich schon den Zeichensatz UTF8 gewählt. Funktioniert trotzdem nicht. Genau derselbe Zustand wie vorher auch. Speichert nur Fragezeichen.

Hallo desventurados,

Welche Zeichen siehst Du auf dem Bildschirm, wenn das Java Programm nur auch dem folgenden Code besteht:

System.out.println("[color=blue]String_kyrillische_Zeichen_in_UTF8_Codierung[/color]");

wobei String_kyrillische_Zeichen_in_UTF8_Codierung durch kyrillische Zeichen in UTF8 Codierung zu ersetzen ist.



mfg

fristo