|
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? Does
// 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
...
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-substring
https://www.ibm.com/docs/en/i/7.5.0?topic=cdt-processing-string-data-by-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.