View Full Version : Euro Zeichen in Datei IFS mit native Java
Hallo,
ich habe ein problem mit der Verarbeitung von einer Textdatei mit native Java auf der AS/400. Die datei enthält Eurozeichen. Leider werden die von meinem Java-Programm nicht mitgelesen. Da steht X'20' drin.
Starte ich das Programm vom Pc mit gleicher Datei aus dem IFS funktioniert es.
evtl. kann man irgendwo vorm Lesen der Datei einen Zeichnsatz angeben. Ich weiß allerdings nicht wo.
Vieleicht kann mir jemand einen Tipp geben.
Mit freundlichen Grüßen
Ralf
Hallo Forum,
das Thema hat sich erledigt !
Vielen Dank
Ralf
Würde mich schon interessieren ob du es gelöst hast und wenn ja wie oder nur ignorierst.
Hallo,
ich habe es gelöst. Im Normalfall wird eine Datei (File) mit dem Std. Zeichensatz des jeweiligen Betriebssystem eröffnet. Das ist bei Windows ein anderes(windows-1252) als bei der AS/400(???).
Man kann aber einen Zeichensatz angeben:
BufferedReader reader=new BufferedReader( new InputStreamReader( new FileInputStream(datei) , "windows-1252") );
Da alle Dateien in diesen Zeichensatz bei uns auf der AS/400 gespeichert werden, funktioniert das dann. Wenn das Ziel-CHAR-Feld in der Datenbank dann den Zeichensatz 1141 hat, wird das Eurozeich auch richtig angezeigt.
Jetzt muß ich nur noch rausbekommen, wie ich den Zeichsatz ermittel kann, unter dem die Datei im IFS gespeichert wurde. Abfragen kann man das im OPNav. Ich haffe das es da was imt jt400 gibt ?!
Mit freundlichen Grüßen
Ralf
com.ibm.as400.access.IFSFile sollte es tun...
Da gibt es aber ein Problem:
Wird eine IFS-Datei lokal auf der AS/400 angelegt hast du Einfluss auf die CCSID.
Wird das anlegen extern initiiert, legt die AS/400 das selber fest:
a) FTP: CHGFTPA
b) Netzfreigabe: Default-CCSID im netServer (Standard 850!)
Beim Öffnen ohne CCSID-Angabe wird die aktuelle CCSID der IFS-Datei verwendet.
Wenn im NetServer der Default auf 850 steht ist das natürlich falsch bei Windows aber richtig bei Unix/Linux.
Hallo Dieter,
vielen Dank für den Tiü. Hat prima funktioniert.
Mit freundlichen Grüßen
Ralf
Da gibt es aber ein Problem:
Wird eine IFS-Datei lokal auf der AS/400 angelegt hast du Einfluss auf die CCSID.
Wird das anlegen extern initiiert, legt die AS/400 das selber fest:
a) FTP: CHGFTPA
b) Netzfreigabe: Default-CCSID im netServer (Standard 850!)
Beim Öffnen ohne CCSID-Angabe wird die aktuelle CCSID der IFS-Datei verwendet.
Wenn im NetServer der Default auf 850 steht ist das natürlich falsch bei Windows aber richtig bei Unix/Linux.
Für die spezielle Anwendung werden nur Dateien von außen bereitgestellt.
bei FTP ist bei uns CCSID 819 eingestellt. Das verwenden wir jedoch bisher nicht. Der FTP-Server ist sogar gestoppt.
Beim NetServer ist 1252 eingestellt und damit dürfte das wieder passen
Vielen Dank noch mal für die Tipps
Gruß
Ralf