-
Ich mach das aber so.
Und rechne mir die Länge aus (zur Verfügung gestellter Speicherplatz - von iconv übrig gelassener Speicherplatz). Das setze ich dann mit %LEN(variable) = ermittelter Wert.
Ja, das hatte er schon mal besser. :-)
-
Also hier mal ein simples Beispiel für das API CDRCVRT:
Code:
d CDRCVRT pr extpgm('CDRCVRT')
d CCSID1 10I 0
d ST1 10I 0
d S1 32766 options(*varsize)
d L1 10I 0
d CCSID2 10I 0
d ST2 10I 0
d GCCASN 10I 0
d L2 10I 0
d S2 32766 options(*varsize)
d L3 10I 0
d L4 10I 0
d FB 12
d ConvParm ds
d CCSID1 10I 0 inz(273)
d ST1 10I 0 inz(0)
d S1 100 inz
d L1 10I 0 inz(%size(S1))
d CCSID2 10I 0 inz(1208)
d ST2 10I 0 inz(0)
d GCCASN 10I 0 inz(0)
d L2 10I 0 inz(%size(S2))
d S2 100 inz
d L3 10I 0 inz
d L4 10I 0 inz
d FB 12
d FBCodes 10I 0 overlay(FB) dim(3)
c/free
S1='ABCÄä';
L1 = 5;
CDRCVRT(
CCSID1
:ST1
:S1
:L1
:CCSID2
:ST2
:GCCASN
:L2
:S2
:L3
:L4
:FB
);
return;
/end-free
S2 enthält den UTF8-Code und L3 dann die Länge.
-
Ich bekomme allerding iConv auch nicht zum Arbeiten.
-
Hm, ich kann keinen Fehler an Deinem Code entdecken.
Vielleicht postest Du ihn mal? ;-)
-
Wen meinst du jetzt?
das 'CDRCVRT' funktioniert, allerdings komme ich auch beim C-API 'iconv' zu keinem Ergebnis.
Allerdings reicht mir ja das OPM-API .
-
Ich hatte schon Dich gemeint.
Wär' ja gelacht, wenn man das nicht zum Laufen brächte.
Naja, aber irgendeinen Grund muss es ja geben, warum das alle verwenden und nicht das 'CDRCVRT'. (Von dem ich, ich gestehe, noch nie vorher was gehört hatte.)
Ich nehme an, es gibt einen Performancevorteil bei iconv, wenn man viel übersetzt.
-
 Zitat von Fuerchau
Also hier mal ein simples Beispiel für das API CDRCVRT:
Code:
d CDRCVRT pr extpgm('CDRCVRT')
d CCSID1 10I 0
d ST1 10I 0
d S1 32766 options(*varsize)
d L1 10I 0
d CCSID2 10I 0
d ST2 10I 0
d GCCASN 10I 0
d L2 10I 0
d S2 32766 options(*varsize)
d L3 10I 0
d L4 10I 0
d FB 12
d ConvParm ds
d CCSID1 10I 0 inz(273)
d ST1 10I 0 inz(0)
d S1 100 inz
d L1 10I 0 inz(%size(S1))
d CCSID2 10I 0 inz(1208)
d ST2 10I 0 inz(0)
d GCCASN 10I 0 inz(0)
d L2 10I 0 inz(%size(S2))
d S2 100 inz
d L3 10I 0 inz
d L4 10I 0 inz
d FB 12
d FBCodes 10I 0 overlay(FB) dim(3)
c/free
S1='ABCÄä';
L1 = 5;
CDRCVRT(
CCSID1
:ST1
:S1
:L1
:CCSID2
:ST2
:GCCASN
:L2
:S2
:L3
:L4
:FB
);
return;
/end-free
S2 enthält den UTF8-Code und L3 dann die Länge.
@Fuerchau: Vielen Dank für dein Beispiel!
Allerdings wird bei mir aus
ABCÄä
der Wert
â{CdCu
Kann es vll sein, das es Darstellungsprobleme im RDI gibt?
Eher nein oder?
-
Kontrollieren kannst du den Wert nur mit Hex-Ausgabe:
41 42 43 C384 C3A4
Das ist UTF8 ABC
C384 = 'Ä'
C3A4 = 'ä'
ASCII-Zeichen lassen sich in EBCDIC halt nicht anzeigen, da kommt bei mir das selbe raus.
Similar Threads
-
By VolkerGrebner in forum NEWSboard Programmierung
Antworten: 2
Letzter Beitrag: 16-02-07, 15:38
-
By vige1000 in forum NEWSboard Linux
Antworten: 4
Letzter Beitrag: 21-12-06, 12:56
-
By Robi in forum IBM i Hauptforum
Antworten: 2
Letzter Beitrag: 14-12-06, 12:12
-
By Weki in forum IBM i Hauptforum
Antworten: 4
Letzter Beitrag: 11-09-06, 14:31
-
By cseitz in forum IBM i Hauptforum
Antworten: 0
Letzter Beitrag: 20-06-06, 15:40
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