Re: Decode base64 to job CCSID?

Daniel Gross <[email protected]> Wed, 1 Apr 2026 20:15:22 +0200
Newsgroups gmane.comp.lang.as400.rpg
Message-ID <[email protected]>
Ah - yes - BASE64_DECODE returns a blob without CCSID (or better with *HEX).

I solved this lately with a DS:

   dcl-ds decoded qualified;
     blob varchar(1000);
     utf8 varchar(1000) ccsid(*utf8) samepos(blob);
   end-ds;

   exec sql set :decoded.blob = QSYS2.BASE64_DECODE(:encoded);
   return decoded.utf8;

I think this works quite OK - you could of course do this also with some pointer-arithmetic.

HTH
Daniel


> Am 01.04.2026 um 19:53 schrieb Justin Taylor <[email protected]>:
> 
> If I specify the CCSID on retDecoded, I get SQLSTATE 42806 "Variable
> RETDECODED not compatible or value too long.".
> 
> 
> Example:
>       Dcl-s retDecoded varChar(1000) ccsid(*UTF8) ;
> 
> 
> 
>> On Wed, Apr 1, 2026 at 12:32 PM cesco via RPG400-L <
>> [email protected]> wrote:
>> 
>> You need to know what encoding the encoded in base64 was originally in.
>> then try to declare retDecoded with that CCSID
>> 
>> 
>> 
>> 
>> 
> --
> 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: [email protected]
> Before posting, please take a moment to review the archives
> at https://archive.midrange.com/rpg400-l.
> 
> Please contact [email protected] for any subscription related questions.
> 
-- 
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: [email protected]
Before posting, please take a moment to review the archives
at https://archive.midrange.com/rpg400-l.

Please contact [email protected] for any subscription related questions.