View Full Version : Konvertieren in Unicode
Rainer Ross
28-10-16, 11:21
Hallo Forum,
ich möchte Zeichen nach Unicode konvertieren
z.B. abc ergibt \u0061\u0062\u0063
habt Ihr dafür eine Lösung?
Bitte keine Grundsatzdiskussionen wie beim Thema "Buchempfehlung"
Vielen Dank für Eure Unterstützung
Rainer
andreaspr@aon.at
28-10-16, 11:40
Hallo Rainer,
je nachdem aus welcher Umgebung du kommst kannst du das mit SQL machen.
values ( hex(graphic('abc', 10, 1200) ) )
10=Länge
1200=Die gewünschte Unicode CCSID
In RPG würde das dann so aussehen:
Exec Sql Set :v1 = graphic('abc', 10, 1200);
lg Andreas
Rainer Ross
28-10-16, 11:46
Hallo Andreas,
danke für diese tolle Lösung, die auf Anhieb funzt
Herzliche Grüße
Rainer
Wie wäre es mit ILERPG:
D MyUnicode C 10
D MyChar A 10
MyUnicode = %UCS2(MyChar); // Umwandeln in Unicode
MyChar = %char(MyUnicode); // Umwandeln in CCSID des Jobs
Oder eben SQL:
exec sql Set : MyUnicode = cast(: MyChar as nchar(10));
Zu beachten ist lediglich, dass mit %UCS2 in die CCSID 13488 übersetzt wird, während CCSID 1200 UTF-16 entspricht.
UTF-16 ist aber ein variabler 2/4-Byte-Code der mehr als die 64000-Schriftzeichen kennt.
Solange man aber kleiner U'7FFF' bleibt, ist UCS2 und UTF-16 identisch.
Rainer Ross
28-10-16, 15:59
Hallo Baldur,
das ist auch eine gute Lösung
Vielen Dank
Rainer
Sofern das Ziel-Feld bereits mit GRAPHIC bzw. VARGRAPHIC mit CCSID 1200 (oder auch 13488) definiert ist, erfolgt die Konvertiung von EBCDIC in dieses Format in SQL automatisch, d.h. eine explizite Konvertierung über GRAPHIC/VARGRAPHIC bzw. CAST ist nicht erforderlich.
Birgitta