The Internal Code Page (-cpinternal) startup parameter determines the internal code page that OpenEdge uses in memory. The code page in which r-code is compiled and the internal code page of the session in which the r-code runs must be compatible. That is, the r-code code page must be either the internal code page, undefined, or convertible to the internal code page.
If the code page for r-code, from either an operating system file, a memory-mapped procedure library, or a standard procedure library, is not the same as the session's internal code page, OpenEdge performs an in-memory conversion of the r-code text segments to the session's internal code page.
Note: If you use the R-code In Code Page (-cprcodein) startup parameter to specify a code page for reading r-code text segments, OpenEdge reads the text segments as if they were written in that code page, even if the text segments were written in a different code page.
When executing r-code from a standard procedure library, the ABL Virtual Machine (AVM) accesses and executes the r-code segments in the execution buffer in local memory. The AVM does not swap the r-code segments to the r-code swap file unless you specify the PROLIB Swap (-pls) startup parameter. By default, the AVM reloads segments from the open library in local memory.
Codepage-converted text segments from memory-mapped and standard procedure libraries are swapped in and out of the r-code swap file, preserving any code page conversions that occurred during the initial load of the text segment.
For more information about the Internal Code Page (-cpinternal) and R-code In Code Page (-cprcodein) startup parameters, see OpenEdge Deployment: Startup Command and Parameter Reference.