Anmelden

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

Fuerchau
28-10-16, 15:50
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

B.Hauser
28-10-16, 16:16
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