-
Zeichenverschiebung durch Umstellung auf UTF-8 (FTP)
Hallo zusammen,
wir erhalten von einem unserer Kunden Daten per FTP direkt in eine Bibliothek. Er hat jetzt auf UTF-8 umgestellt, was dazu führt das die Umlaute und Sonderzeichen mit zwei Hex-Werten belegt sind und somit eine Verschiebung der restlichen Daten im Satz erfolgt. Ich habe schon versucht durch hin- und herkopieren in Dateien mit unterschiedlichen CCSID die Sache im Griff zu kriegen. Leider erfolglos. Gibt es da eine schlanke Lösung für?
Systemwerte:
FTPATR CCSID 819
PF CCSID 273
Beste Grüße
ubas
Uwe Bolte
Tel.: 0171-1958266
-
Du musst die Daten per SQL umcasten:
a) wenn das Feld CCSID 65535 hat
select
cast(cast(Feld as char(nn) ccsid 1208) as char(nn) ccsid 273)
from MyFile
b) wenn das Feld eine andere CCSID hat
select
cast(cast(cast(Feld as char(nn)) ccsid 65535) as char(nn) ccsid 1208) as char(nn) ccsid 273)
from MyFile
-
Vielen Dank für die rasche Antwort doch leider erfolglos.
Ich bin nicht der SQL-Spezi und habe es trotzdem mal probiert. Wobei ich nicht weiß wofür das nn in char steht.
Habe folgenden Fehler erhalten:
select
cast(cast(cast(file768 as char(01) ccsid 65535) as char(01)
ccsid 1208) as char(01) ccsid 273) from boltetest/file768
Zeichenumsetzung zwischen CCSID 65535 und CCSID 1208 ungültig.
Dateibeschreibung:
ID des codierten Zeichensatzes . . . . . . : CCSID 65535
Sprachen-ID . . . . . . . . . . . . . . . . : LANGID DEU
Teildateibeschreibung
Teildatei . . . . . . . . . . . . . . . . . : MBR FILE768
*...+....1....+....2....+....3....+....4....+....5 ....+....6.
FILE768 1 768 2BF1930DCD677
Text . . . . . . . . . . . . . . . . . . . :
Gesamtanzahl Formate . . . . . . . . . . . . : 1
Gesamtanzahl Felder . . . . . . . . . . . . : 1
Gesamtlänge Datensatz . . . . . . . . . . . : 768
Uwe Bolte
Tel.: 0171-1958266
-
Das (nn) steht für die ursprüngliche Länge des Feldes, in deinem Fall also 768.
Aber das System lehnt ja die Umsetzung von Binär(65535) nach UTF8 (1208) leider ab.
Dann geht das so leider überhaupt nicht.
Dein Problem ist, dass das Feld bzw. die Datei bereits mit CCSID 273 erstellt ist und sich die Daten somit nicht in UTF8 umstellen lassen.
Der Code in der Datei ist ja bereits EBCDIC und somit nicht in UTF8 (ASCII) zurückkonvertierbar.
Du musst die Daten vom Kunden nicht in eine PF sondern ins IFS per FTP übertragen lassen.
Dann kannst du per CHGATR die IFS-Datei auf 1208 setzen und per CPYTOIMPF in eine PF übertragen lassen.
Alternativ kannst du versuchen, die Transfer-PF statt mit CCSID 273 auf Feldebene (per DDS, besser per SQL und CREATE TABLE) mit 1208 zu erstellen.
Ich glaube aber, dass der FTP-Server der AS/400 dies dann nicht übertragen kann.
-
Das mit dem IFS bedeutet zwar alles umzubauen, aber es läuft.
Vielen Dank und Gruß
Uwe Bolte
Tel.: 0171-1958266
Similar Threads
-
By MR-BN in forum NEWSboard Programmierung
Antworten: 4
Letzter Beitrag: 10-05-16, 15:14
-
By TheDevil in forum IBM i Hauptforum
Antworten: 3
Letzter Beitrag: 07-03-16, 13:11
-
By jojoschluckfirma in forum IBM i Hauptforum
Antworten: 5
Letzter Beitrag: 15-07-15, 06:56
-
By until65 in forum IBM i Hauptforum
Antworten: 20
Letzter Beitrag: 10-07-15, 15:11
-
By Sunny in forum IBM i Hauptforum
Antworten: 1
Letzter Beitrag: 17-04-01, 07:00
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- You may not post attachments
- You may not edit your posts
-
Foren-Regeln
|
Erweiterte Foren Suche
Google Foren Suche
Forum & Artikel Update eMail
AS/400 / IBM i
Server Expert Gruppen
Unternehmens IT
|
Kategorien online Artikel
- Big Data, Analytics, BI, MIS
- Cloud, Social Media, Devices
- DMS, Archivierung, Druck
- ERP + Add-ons, Business Software
- Hochverfügbarkeit
- Human Resources, Personal
- IBM Announcements
- IT-Karikaturen
- Leitartikel
- Load`n`go
- Messen, Veranstaltungen
- NEWSolutions Dossiers
- Programmierung
- Security
- Software Development + Change Mgmt.
- Solutions & Provider
- Speicher – Storage
- Strategische Berichte
- Systemmanagement
- Tools, Hot-Tips
Auf dem Laufenden bleiben
|
Bookmarks