PDA

View Full Version : FTP - Zeichensatz von PC in AS400



Beate
27-08-19, 08:51
Hi,
und noch eine Anfrage zwecks FTP:
Haben unseren FTP-Weg vom PC in die AS400 umgeändert, so dass wir jetzt FTP aus der AS400 machen. Nun tritt ein Fehler im Zeichnsatz (unregelmässig) auf, der evtl. schon lange existiert, aber noch nie Probleme gemacht hat..

Beim Upload von .XML Dateien werden - je nach Zeichensatz, der in der XML-Datei steht, die Umlaute nicht mehr korrekt dargestellt.
<?xml version="1.0" encoding="ISO-8859-15" ?>
<articles>
<article>
Bei ISO-8859-15 passt alles, wenn dort UTF-8 steht, werden die Sonderzeichen Ä,Ö,Ü nicht mehr korrekt dargestellt. Da auf der PC-Seite seit Jahren nichts geändert wurde, gehe ich davon aus, dass hier der FTP-Command auf der AS400 andere Zeichensätze verwendet.
Kann man das ändern ?

Danke
Beate

Fuerchau
27-08-19, 11:17
Da FTP eine CCSID nicht mitliefert, wird die Standard CCSID per CHGFTPA mit z.B. 1252 (ANSI) eingestellt. Kommt nun eine UTF8-Datei daher, muss man entweder per FTP "type c 1208" vor dem Put eingeben oder vor der Verarbeitung der Datei einfach einen
CHGATR OBJ('/home/MyFile') ATR(*CCSID) VALUE(1208)
durchführen. Eine Codewandlung passiert dadurch nicht!

Beate
27-08-19, 13:04
sorry, aber hier komm ich nicht mit...
Wir machen aus der AS400 über einen RPG-Aufruf einen FTP GET, der eine Datei aus dem PC in die AS400 holt.
Was muss ich denn nehmen 1252 oder 1208 ?
Oder kann ich beim Öffnen des FTP auf der AS400 schon eine CCSID definieren - steht ja auf *DFT.

Danke
Beate

Robi
27-08-19, 13:22
chgftpa f4 zeigt den dft an,

notepad++ zeigt, unten in der Statusleiste, die Kodierung der PC-Datei
Diese kommt (meine Erfahrung), je nach Lieferant, mal so mal so (vom selben Lieferant, z.B. Banken ...)

Die Übername muß halt passen ...
Robi

Fuerchau
27-08-19, 13:59
Es ist halt nur so, dass eben CHGFTPA nur das Attribut einer IFS-Datei setzt. Codewandlungen werden beim FTP im Bin-Modus nicht durchgeführt.
Der get ins IFS legt die Datei mit den Daten so an, wie sie vom PC geholt werden und setzt das CCSID-Attribut auf die CCSID, die in FTPA angegeben ist.
Wenn du also weißt, dass die Daten UTF8 sind, kannst du nach dem FTP einen CHGATR aufrufen.

XML-Datei müssen (eigentlich) in dem Format gespeichert sein, dessen Codierung im Header steht.
Mann kann also z.B. per CLOB_FILE im ILERPG die ersten 50 Stellen lesen, die Codierung prüfen und einen CHGATR entsprechend ausführen um die Datei dnn per XML-INTO (o.ä.) zu verarbeiten.