💻 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.