Setup > Languages > OEM Character Sets

OEM Character Sets

OEM character sets are those which are used by MS-DOS or Console applications (they are operating system dependent). Most OEM character sets do not match the ANSI character sets. For example, line drawing characters commonly used in MS-DOS character sets were replaced with language characters in ANSI character sets.

As explained below, when building multiple language projects give adequate consideration to the role that ANSI and OEM character sets play, in the way the language strings are stored and interpreted.

Language configuration information is stored in dBASE files (a database standard defined primarily for MS-DOS applications) where string information is customarily stored as OEM characters. When using a Windows application (such as Excel) to edit dBASE files, the characters on screen are in the ANSI character set. When you save this information to the dBASE file, Excel converts it to an OEM equivalent. For this conversion to work correctly the OEM character set needs to be compatible with the ANSI character set used in Excel. For example, if you have prepared strings for a project in Russian (using Excel), the OEM character set needs to support the Russian (Cyrillic) character set. The OEM character set used by Windows is primarily determined by your system setup and cannot easily be changed. This presents a challenge for multi-language projects.

For example, consider a project intended to support Russian, French, and English. Excel is used to prepare the language dBASE files. When saving information from Excel, it is translated from the respective ANSI character sets to the OEM equivalent. To display this information, Citect SCADA will need to convert it from OEM back to ANSI. However, Russian requires a Cyrillic OEM character set and French and English requires a Latin OEM character set. Because Windows can only use one OEM character set at a time (which cannot be changed dynamically), only one of the three project languages can be correctly supported during any given session.

The only way to support multiple languages with differing character sets within one Citect SCADA project, is to verify that the language information you store in dBASE files is stored in the ANSI (not the OEM) format. Further, the [CtEdit]ANSItoOEM parameter needs to be set to 0 (zero) to prevent a conversion from occurring automatically. The challenge for the developer in preparing the project is in saving this information in the first place, because most applications store the language information in OEM format.

Note: A multi-language project is included in the samples directory on your installation CD. This project allows you to enter information into the language dBASE files in ANSI format.

Published June 2018