OpenEdge supports Unicode supplementary characters. These are Unicode characters whose codepoints are in the supplementary planes 1-16; that is, codepoints from U+10000 to U+10FFFF. In UTF-8 encoding, these are 4-byte UTF-8 values, with lead bytes ranging from 0xF0 to 0xF4.

OpenEdge supports the UTF-16 and UTF-32 transformation formats as OpenEdge code pages that can be used for conversions. For example, in the following ASC and CHR functions:

ASC( '~U0254AE', "utf-32", "utf-8" )
CHR( 152750, "utf-8", "utf-32") 

Note the decimal value of 0x254AE is 152750.

OpenEdge also supports UTF-16 for conversions. It converts supplementary characters, and conversions within ASC and CHR properly handle 2-byte values as unsigned shorts.