-
XML Datei generieren ISO-8859-1
Hallo,
ich habe ein Programm das im IFS eine XML Datei erzeugt aber im Kopf steht dann Encoding UTF-8 ich benötige aber ISO-8859-1 .
was müsste ich ändern um ISO-8859-1 zu bekommen?
Hier das Programm
CTL-OPT OPTION(*SRCSTMT:*NODEBUGIO);
DCL-S PDebxml SQLTYPE(XML_CLOB_FILE) ccsid(273);
dcl-s wktime timestamp inz;
exec sql SET OPTION COMMIT = *NONE,
CLOSQLCSR = *ENDMOD,
DATFMT = *ISO ;
time wktime
PDebXml_Name = '/eGECKO/PRD/' + 'Debitor_1_000_' +
'_' + %trim(%char(WKtime)) + '.xml' ;
PDebXml_NL = %len(%trimr(PDebXml_Name)) ;
PDebXml_FO = SQFOVR ;
exec sql values(select
XMLELEMENT(NAME "eGeckoPersonenkonten",
XMLELEMENT(NAME "objectgroupNr", '99'),
(select xmlagg(
XMLELEMENT(NAME "Personenkonto",
XMLELEMENT(NAME "kontenart", 'D'),
XMLELEMENT(NAME "kontonummer", trim(char(kdkdnr) ) ),
XMLELEMENT(NAME "bezeichnung", trim(char(kdkuna) ) ),
XMLELEMENT(NAME "umsatzsteuerIdentNummer", trim(kdidld)
concat trim(kdidnr) ) ) )
from kdst where kdkdar = '1' ))
from sysibm.sysdummy1) into :PDebXml;
*inlr = *on;
Gruß DD3TJ
Thibaut F.
-
K.a. ob das funktioniert, aber Lt
https://www.ibm.com/docs/en/i/7.4?to...lues-defined-i
ist 8859-1 die ccsid 819
Das Notwendige steht über dem technisch machbaren.
(klingt komisch, funktioniert aber!)
-
Die Frage ist auch hier, wo gebe ich das "Encoding" für den XML-Header mit an.
Statt 819 würde ich eher 1252 empfehlen. Die Differenzen sind i.W. nur das €-Zeichen.
Code:
<?xml version="1.0" encoding="ISO-8859-1"?>
-
Grundsätzlich kannst du beim XMLSERIALIZE das Encoding ausgeben lassen.
Das Encoding ergibt sich aus dem Inhalt automatisch:
Code:
values(
xmlserialize (
xmldocument(
xmlelement(name "tag", 'wert')
)
As clob(1k) CCSID 1141 INCLUDING xmldeclaration
)
)
HTML-Code:
<?xml version="1.0" encoding="IBM01141"?><tag>wert</tag>
Ich kann nur keine CCSID 819 dort angeben.
-
Aber 1252 sollte gehen. Korrekt wäre aber ISO-8859-1;-).
Bei 1252 könnte man dann die Ausgabedatei aber manuell oder per Script das Encoding anpassen.
-
Leider geht 1252 nicht.
auch mit der SQL Funktion CALL QSYS2.OVERRIDE_QAQQINI kann ich weder 819 noch 1252 setzen
1141 oder 237 sind kein Problem
also wie könnte ich es hinbekommen?
-
Mit 1141 erstellen, per CPY in 1252 umwandeln und den Header per EDTF editieren.
Das Ganze geht auch in RPG.
Das Dockument in ein CLOB (max. 16MB sollten ja reichen) laden.
Per scanreplace den Header anpassen.
Per SQLTYPE(CLOB_FILE) die Datei ins IFS mit 1252 schreiben.
https://www.ibm.com/docs/en/i/7.4?to...s-that-use-sql
Similar Threads
-
By camouflage in forum NEWSboard Programmierung
Antworten: 1
Letzter Beitrag: 22-10-15, 21:08
-
By Bruno Leydet in forum NEWSboard Programmierung
Antworten: 9
Letzter Beitrag: 28-04-13, 14:10
-
By Peterfritz in forum IBM i Hauptforum
Antworten: 1
Letzter Beitrag: 16-10-07, 10:03
-
By deni87991 in forum IBM i Hauptforum
Antworten: 11
Letzter Beitrag: 30-06-06, 10:12
-
By Reinhold Müller in forum IBM i Hauptforum
Antworten: 2
Letzter Beitrag: 28-04-01, 08: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