Re: CCSID - RPG issues
Gad Miron <[email protected]> Thu, 26 Feb 2026 15:02:05 +0200
| Newsgroups | gmane.comp.lang.as400.rpg |
|---|---|
| Message-ID | <CAFj_=c35At1kWq8yfb4_3Zmg8+sB-WauRoidXzPq4=7SBkQDcQ@mail.gmail.com> |
Hello Birgitta, cesco
Glad to have you aboard (-:
I reduced the skeleton RPG program that I'm testing to the following :
FNMMLIMPF if e k DISK EXTDESC('URPS/NMMLIMPF')
F EXTFILE(*EXTDESC)
F DATA(*NOCVT)
dcl-ds ds_NMMLIMP likerec(NMMLIMPR) ccsid(*exact)
SRCFILEID = 36932 ;
CATLOG = '9OZUjyrCZ_Q' ;
chain (SRCFILEID : CATLOG) NMMLIMPF ds_NMMLIMP ;
C eval *INLR = *ON
comparing ds_NMMLIMP.ITEMNAME in debug to the data in the file shows the
RPG data to be incorrect .
other fields (SRCFILEID, COMPNY, CATLOG...) seems correct.
a condensed DDS for NMMLIMPF is
A R NMMLIMPR
A SRCFILEID 7P 0
A COMPANY 3A ALWNULL
A CMPTYP 2A
A CATTYP 1A
A CATLOG 32A ALWNULL
A ITEMNAME 512 ALWNULL
A VARLEN(30)
A CCSID(1208)
.
.
.
A K SRCFILEID
A K CATLOG
and as I mentioned,
Retrieving this ITEMNAME value and using it to update a Name field in
another file
Works fine when done by SQL.
> date: Thu, 26 Feb 2026 08:40:50 +0100
> from: "Birgitta Hauser" <Hauser-bRAHsVz2yv4TVIZRl6KS/[email protected]>
> subject: RE: CCSID - RPG issues
>
> Without having seen your program and H- and D-Specifications for defining
> your data structures ... it is hard to say what happened.
> ... but per default is everything converted into the Job CCSID, so the
> Hex-Value in your program (CCSID 37) can differ from the hex-Value in your
> file (CCSID 1208)
>
> In RPG when using native I/O in a cyclic Main procedure without output
> into a data structure, RPG generates automatically I/O Buffer (but the
> character data are converted into JOBCCSID).
>
> If you want to avoid this, you have to read your data into a data
> structure, but you have to suppress any conversion.
> This can be done by adding the Keyword DATA(*NOCVT) to the file in the
> F-Specs and CCSID(*EXACT) to the Data structure Definition.
> With DATA(*NOCVT) are the file data is not converted when reading the data
> With CCSID(*EXACT) the (unconverted) read data is moved unconverted into
> the data structure.
>
> Example:
> DCL-F MyFile Keyed Data(*NoCvt);
> DCL-DS OutputDS ExtName('MYFILE': *ALL) CCSID(*EXACT) END-DS;
>
> Mit freundlichen Gr??en / Best regards
>
> Birgitta Hauser
> Modernization ? Education ? Consulting on IBM i
> Database and Software Architect
> IBM Champion since 2020
>
>
> ------------------------------
>
> date: Thu, 26 Feb 2026 09:15:36 +0000 (UTC)
> from: cesco via RPG400-L <[email protected]>
> subject: Re: CCSID - RPG issues
>
> Impossible to know without a minimally reproducible example.Your hex dump
> are a mix of french ccsid ebcdic and utf8.I personally just use UTF16 in
> files , put H CCSID(*UCS2:*UTF16) in the header , varucs2 for any internal
> var and all works idiomatically even in stock native io without any? other
> particular provisions.
> ciau
>
>
>
>
>
--
This is the RPG programming on IBM i (RPG400-L) mailing list
To post a message email: [email protected]
To subscribe, unsubscribe, or change list options,
visit: https://lists.midrange.com/mailman/listinfo/rpg400-l
or email: RPG400-L-request-+hD5IHI5Xscn3HwCXmMcX9BPR1lH4CV8@public.gmane.org
Before posting, please take a moment to review the archives
at https://archive.midrange.com/rpg400-l.
Please contact support-FMtJrHiV//lnDLsaKlm4mFaTQe2KTcn/@public.gmane.org for any subscription related questions.