|
date: Tue, 24 Feb 2026 09:29:25 -0500--
from: Barbara Morris <bmorris@xxxxxxxxxx>
subject: Re: CCSID - RPG issues
On 2026-02-24 8:56 a.m., Gad Miron wrote:
...In debug, does ds_NMMLIMP2.ITEMNAME look correct before the %subst?
// take first 128 chars of Item Description
ds_NMWRKR.ITEMNAME8 = %subst(ds_NMMLIMP2.ITEMNAME :1 : 128)
;
// Update map file - target
update NMWRKR ds_NMWRKR ;
C eval *INLR = *ON
The update works but the value placed in ITEMNAME8 is erroneous ...
Does it have UTF8 data? (look at the hex value of the field in the
debugger)
Does ds_NMWRKR.ITEMNAME8 look correct after the %subst?
Is it always incorrect? Or does the problem only happen with some values?
Using %subst with UTF8 data has the potential to only pick up the
first byte of a 2-byte character unless you are using the new
CHARCOUNT NATURAL support.
https://www.ibm.com/docs/en/i/7.5.0?topic=functions-subst-get-substrin
g
https://www.ibm.com/docs/en/i/7.5.0?topic=cdt-processing-string-data-b
y-natural-size-each-character
(I should update that pdf document to talk about the CHARCOUNT support
that was added in 7.4 and 7.5 with PTFs.)
--
Barbara
As an Amazon Associate we earn from qualifying purchases.
This mailing list archive is Copyright 1997-2026 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].
Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.