Ich habe jetzt herausgefunden wo der Fehler lag. Und zwar wird beim Einlesen eines Feldes des RecordSets mit der Methode getString() automatisch versucht in die Codepage der zugrundeliegenden Plattform zu konvertieren. Im vorliegenden Fall hat das Programm versucht das Feld aus der SQL-Server-Datenbank in die EBCDIC-Codepage 273 zu konvertieren, da das Java-Programm über meine iSeries-Sitzung gestartet wurde. Und da es diese Sonderzeichen in der EBCDIC-Codepage nicht gibt, wurden sie in Fragezeichen konvertiert. Als ich das Programm mal in einer Windows-Umgebung laufen ließ, wurden die Zeichen korrekt übernommen.
Jetzt habe ich das Programm so geändert, dass der neue String gleich mit der richtigen Codepage erstellt wird. Das sieht dann folgendermaßen aus:

alter Code:
beschreibung = sql_rs.getString(1).trim();

neuer Code:

byte ba = sql_rs.getString(1).getBytes("Cp1252");
beschreibung = new String(ba);

Damit funktioniert's jetzt auch auf der iSeries. Tja, das sind halt so die Anfängerfehler. Nur drauf kommen muß man erst mal :-)

Gruß,
KM