ECN-4483 Using OEM data with extend 10.1 and later

RPI Number: 628325

Product: ACUCOBOL-GT

Module: Runtime

Machines Affected: Windows

Known Versions Affected: 10.1.0 and later

DESCRIPTION:

ECN-4363 introduced Unicode support for user input and output, and as part of the implementation, a new configuration variable (COBOL-CHARACTER-SET) was introduced, and the TRANSLATE-TO-ANSI configuration variable was removed. Under this implementation, if your data matched the current ANSI code page, you were unaffected, but if your data was represented by an OEM character set, you would either need to determine the correct Microsoft OEM code page, and then set COBOL-CHARACTER-SET to its identifier number or to OEM (or 1).

For ease of upgrading, we have reintroduced the TRANSLATE-TO-ANSI configuration variable, with the same semantics as in prior versions. You can use either variable for OEM character set translations. However, it should be noted that having COBOL-CHARACTER-SET set to the default of ANSI and TRANSLATE-TO-ANSI set to TRUE is less efficient than setting TRANSLATE-TO-ANSI to FALSE and setting COBOL-CHARACTER-SET to OEM. The reason is that, in the former case, the runtime first translates OEM data to ANSI, then translates the ANSI date to UTF-16 to display it; and when accepting data, the runtime receives UTF-16 data, translates it to ANSI, and then translates again to OEM to return to the COBOL program. While in the latter case, the runtime translates the OEM data to UTF-16 directly (to display), and UTF-16 to OEM directly (to accept).

The default value for TRANSLATE-TO-ANSI is FALSE.