A fix is available
APAR status
Closed as program error.
Error description
According to the JSON specification, control characters (UTF-8 range 0x000x1F) must either be escaped or are not allowed. However, the COBOL runtime is inadvertently mapping these disallowed UTF-8 control characters to incorrect EBCDIC values.
Local fix
Problem summary
**************************************************************** * USERS AFFECTED: Users of Enterprise COBOL V6.4 and later * * releases running programs which parse * * JSON text using the JSON PARSE statement * * with the ENCODING phrase. * **************************************************************** * PROBLEM DESCRIPTION: When the JSON PARSE statement processes * * JSON text containing select EBCDIC * * characters (such as X'060708090A'), * * the COBOL Runtime unexpectedly issues * * message IGZ0335W, identifying the * * JSON text as invalid. * **************************************************************** * RECOMMENDATION: Install the provided PTF. * **************************************************************** Per JSON standards, Unicode control characters (U+0000 through U+001F) must be escaped. The COBOL Runtime maps them to incorrect EBCDIC characters during its validity checking process. Consequently, EBCDIC characters which do not require escaping are erroneously rejected, issuing IGZ0335W. For example, in the following program, IGZ0335W is issued even though the EBCDIC characters specified in X'060708090A' do not require escaping. CBL CP(1140) IDENTIFICATION DIVISION. PROGRAM-ID. DEMO. DATA DIVISION. WORKING-STORAGE SECTION. 01 JSON-TEXT PIC X(50) VALUE ' '. 01 KEY1 PIC X(10). PROCEDURE DIVISION. STRING ' {"KEY1": "' X'060708090A' ' "}' DELIMITED SIZE INTO JSON-TEXT JSON PARSE JSON-TEXT INTO KEY1 WITH DETAIL ENCODING 1140 GOBACK. Actual output: IGZ0335W During execution of the JSON PARSE statement on line 18 of program DEMO, the JSON text in KEY1 was found to be invalid. At offset 11, X'06' was found, but one of NON-CONTROL CHARACTERS (Value X'00' - X'3F') was expected. COB0604T/K COB0605T/K
Problem conclusion
The COBOL Runtime logic has been corrected to properly map Unicode control characters to their corresponding EBCDIC equivalents. The following table defines the specific UTF-8 to EBCDIC mappings for characters that must be escaped: Mapping from UTF-8 to EBCDIC(UTF-8 -> EBCDIC): 00 -> 00 : NUL (Null) 01 -> 01 : SOH (Start of Heading) 02 -> 02 : STX (Start of Text) 03 -> 03 : ETX (End of Text) 04 -> 37 : EOT (End of Transmission) 05 -> 2D : ENQ (Enquiry) 06 -> 2E : ACK (Acknowledge) 07 -> 2F : BEL (Bell) 08 -> 16 : BS (Backspace) 09 -> 05 : HT (Horizontal Tabulation) 0A -> 25 : LF (Line Feed) 0B -> 0B : VT (Vertical Tabulation) 0C -> 0C : FF (Form Feed) 0D -> 0D : CR (Carriage Return) 0E -> 0E : SO (Locking Shift One (Shift Out)) 0F -> 0F : SI (Locking Shift Zero (Shift In)) 10 -> 10 : DLE (Data Link Escape) 11 -> 11 : DC1 (Device Control One) 12 -> 12 : DC2 (Device Control Two) 13 -> 13 : DC3 (Device Control Three) 14 -> 3C : DC4 (Device Control Four) 15 -> 3D : NAK (Negative Acknowledge) 16 -> 32 : SYN (Synchronous Idle) 17 -> 26 : ETB (End of Transmission Block) 18 -> 18 : CAN (Cancel) 19 -> 19 : EM (End of Medium) 1A -> 3F : SUB (Substitute) 1B -> 27 : ESC (Escape) 1C -> 1C : IFS (Information File Separator) 1D -> 1D : IGS (Group Separator) 1E -> 1E : IRS (Record Separator) 1F -> 1F : IUS (Unit Separator) For more information, see the following IBM reference: COBOL Language Reference > PROCEDURE DIVISION >> PROCEDURE DIVISION statements >>> JSON PARSE statement >>>> Control character mapping table between UTF-8 and EBCDIC COB0604T/K COB0605T/K
Temporary fix
Comments
APAR Information
APAR number
PH70652
Reported component name
LE ENT COBOL LI
Reported component ID
568819812
Reported release
7F0
Status
CLOSED PER
PE
NoPE
HIPER
NoHIPER
Special Attention
NoSpecatt / Xsystem
Submitted date
2026-03-24
Closed date
2026-04-17
Last modified date
2026-05-02
APAR is sysrouted FROM one or more of the following:
APAR is sysrouted TO one or more of the following:
UO07528 UO07529 UO07530
Modules/Macros
IGZBXITA IGZCCCHK IGZCEV4 IGZCFREM IGZCGETM IGZCJNI2 IGZCLOAD IGZGLUE IGZLLIBV IGZRIDT IGZRTMON IGZSETRT IGZTRUE IGZXAPI IGZXCA31 IGZXCDA IGZXD24 IGZXDMR IGZXJNI2 IGZXLPIO IGZXLPKA IGZXLPKB IGZXLPKC IGZXLPKD IGZXLPKE IGZXLPKF IGZXLPKG IGZXPK2
Fix information
Fixed component name
LE ENT COBOL LI
Fixed component ID
568819812
Applicable component levels
R7D0 PSY UO07528
UP26/04/28 P F604
R7E0 PSY UO07529
UP26/04/28 P F604
R7F0 PSY UO07530
UP26/04/28 P F604
Fix is available
Select the PTF appropriate for your component level. You will be required to sign in. Distribution on physical media is not available in all countries.
[{"Business Unit":{"code":"BU048","label":"IBM Software"},"Product":{"code":"SS6SG3","label":"Enterprise COBOL for z\/OS"},"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"7F0","Line of Business":{"code":"LOB70","label":"Z TPS"}}]
Document Information
Modified date:
02 May 2026