Liebe Claudia,

anbei das Beispiel mit BASE64 Decoding. Für die Decodierung des CLOB CCSID 1208
Strings gibt es auch eine pfiffige Lösung. Wenn Du dafür ein Beispiel benötigst, dann
gib mir einfach bescheid.
PHP-Code:
         ctl-opt main(maindftactgrp(*nobnddir('BASUTL');
      
//------------------------------------------------------------------//
      //                                                                  //
      // Decode BASE64                                                    //
      //                                                                  //
      //-----------------                                                 //
      // R.Ross 04.2017 *                                                 //
      //------------------------------------------------------------------//
      // Prototypen                                                       //
      //------------------------------------------------------------------//

      
/include webutl/qcpysrc,iconv                   // iconv
      
/include webutl/qcpysrc,base64                  // BASE64

      //------------------------------------------------------------------//
      // Variablen                                                        //
      //------------------------------------------------------------------//

         
dcl-s   GblString   char(1000000);           // Text 1 MB

      //------------------------------------------------------------------//
      // Main                                                             //
      //------------------------------------------------------------------//
         
dcl-proc Main;

         
dcl-s   LocString   like(GblString);
         
dcl-s   LocBase64   like(GblString);

      
// Test mit Umlauten äöü
      // VGVzdCBtaXQgVW1sYXV0ZW4gw6TDtsO8

           
LocBase64 'VGVzdCBtaXQgVW1sYXV0ZW4gw6TDtsO8';

           
LocString decBase64(LocBase64:1141:1208);

         
end-proc;
      
//------------------------------------------------------------------//
      // Decode Base64                                                    //
      //------------------------------------------------------------------//
         
dcl-proc decBase64;
         
dcl-pi *n           like(GblStringrtnparm// Decoded String
                 
PiBase64    like(GblString);         // Encoded String
                 
PiTrgCcsid  uns(10) const;           // Target-CCSID
                 
PiSrcCcsid  uns(10) const;           // Source-CCSID
         
end-pi;

         
dcl-s   LocString   like(GblStringinz;     // Result String
         
dcl-s   LocDecStr   like(GblStringinz;     // Decoded String
         
dcl-s   LocLength   int(10);                 // StringLength
         
dcl-s   LocDeclen   int(10);                 // DecodedLength

           
LocDeclen decBase64Bin(%addr(LocDecStr):%addr(PiBase64));

           
LocLength = %len(%trimr(LocDecStr));       // String-Length
           
LocString cvtData(%addr(LocDecStr):LocLength:
                               
PiTrgCcsid:PiSrcCcsid);
           
LocLength = %len(%trimr(LocString));       // String-Length

           
if LocDeclen > *zero;                      // Decoded Length
              
return %subst(LocString:1:LocDecLen);   // Decoded String
            
else;
              return *
blanks;
           endif;

         
end-proc;
      
//------------------------------------------------------------------//
      // Convert Data between CCSID's                                     //
      //------------------------------------------------------------------//
         
dcl-proc cvtData;
         
dcl-pi *n           like(GblStringrtnparm// Result
                 
PiSrc_p     pointer const;           // Source-Pointer
                 
PiSrcLen    uns(10) const;           // Source-Length
                 
PiTrgCcsid  uns(10) const;           // Target-CCSID
                 
PiSrcCcsid  uns(10) const;           // Source-CCSID
         
end-pi;

         
dcl-s   LocTarget   like(GblStringinz;     // Target
         
dcl-s   LocTrg_p    pointer inz(%addr(LocTarget));
         
dcl-s   LocTrglen   uns(10inz(%size(LocTarget));

           
DsSrcCcsid.tq_ccsid PiSrcCcsid;          // Source-CCSID
           
DsTrgCcsid.tq_ccsid PiTrgCcsid;          // Target-CCSID
           
DsConv              = *allx'00';

           
DsConv iconv_open(DsTrgCcsid:DsSrcCcsid);        // Open
           
iconv(DsConv:PiSrc_p:PiSrcLen:LocTrg_p:LocTrglen); // Convert
           
iconv_close(DsConv);                               // Close

           
return %subst(LocTarget:1:%size(LocTarget) - LocTrglen);

         
end-proc;
      
//------------------------------------------------------------------// 
Herzliche Grüße
Rainer