Master Mainframe Technologies - COBOL, JCL, DB2, VSAM, CICS & More
ABEND Codes SQLCODEs File Status Interview Prep Contact
💻 COBOL

COBOL UTF-8 and Unicode

Advanced 🕑 15 min read 👁 0 views

COBOL UTF-8 and Unicode

Enterprise COBOL supports Unicode through national data types and encoding conversions.

National Data Type

```cobol 01 WS-UNICODE PIC N(20). 01 WS-NATIONAL USAGE NATIONAL PIC N(20). ``` N = UTF-16 (2 bytes per character)

National Literals

```cobol MOVE N'Unicode Text' TO WS-UNICODE. MOVE NX'0041' TO WS-CHAR. (hex literal) ```

DISPLAY-OF Function

Convert national to alphanumeric: ```cobol MOVE FUNCTION DISPLAY-OF(WS-UNICODE) TO WS-ALPHA. ```

NATIONAL-OF Function

Convert alphanumeric to national: ```cobol MOVE FUNCTION NATIONAL-OF(WS-ALPHA) TO WS-UNICODE. ```

Compiler Options

  • NSYMBOL(NATIONAL): N literal = national
  • CODEPAGE: Specify source code page

Code Example

       IDENTIFICATION DIVISION.
       PROGRAM-ID. UNICODE-DEMO.
       DATA DIVISION.
       WORKING-STORAGE SECTION.
       01 WS-ALPHA PIC X(20) VALUE 'Hello World'.
       01 WS-NATIONAL PIC N(20).
       01 WS-CONVERTED PIC X(40).
       PROCEDURE DIVISION.
      * Move national literal
           MOVE N'Unicode Text' TO WS-NATIONAL
           
      * Convert alphanumeric to national
           MOVE FUNCTION NATIONAL-OF(WS-ALPHA)
               TO WS-NATIONAL
               
      * Convert national back to alphanumeric
           MOVE FUNCTION DISPLAY-OF(WS-NATIONAL)
               TO WS-CONVERTED
               
           DISPLAY 'Original: ' WS-ALPHA
           DISPLAY 'Converted: ' WS-CONVERTED
           STOP RUN.