Unicode and codepage support
The system unit works with Short-, Ansi-, and UnicodeString routines for all string related operations.
Ansistrings are code-page aware, which means that code page information is associated with them. For most routines, the support for converting these code pages is natural. For some routines, care must be taken when converting from codepage-aware strings to widestring.
The codepage conversion support is influenced by the following variables:
Name | Description |
---|---|
DefaultSystemCodePage | Actual code page to use when CP_ACP is encountered |
DefaultUnicodeCodePage | Code page for new Unicode strings |
DefaultFileSystemCodePage | Codepage to use when sending strings to single-byte OS file system routines. |
DefaultRTLFileSystemCodePage | Codepage to use when receiving strings from single-byte OS file system routines. |
The windows code page identifiers are used. There are 3 special codepage identifiers:
Name | Description |
---|---|
CP_ACP | Currently set default system codepage |
CP_OEMCP | OEM (console) code page (only on windows) |
CP_NONE | Indicates absence of code page information for a string |
DefaultRTLFileSystemCodePage |
The following routines may perform code page conversions:
Name | Description |
---|---|
LowerCase | Return lowercase version of a string. |
UpCase | Convert a string to all uppercase. |
GetDir | Return the current directory |
MkDir | Create a new directory. |
ChDir | Change current working directory. |
RmDir | Remove directory when empty. |
Assign | Assign a name to a file |
Erase | Delete a file from disk |
Rename | Rename file on disk |
Read | Read from a text file into variable |
ReadLn | Read from a text file into variable and goto next line |
Write | Write variable to a text file or standard output |
WriteLn | Write variable to a text file or standard output and append newline |
ReadStr | Read variables from a string |
WriteStr | Write variables to a string |
Insert | Insert one string or dynamic array in another. |
Copy | Copy part of a string. |
Delete | Delete elements (characters) from a string or dynamic array. |
SetString | Set length of a string and copy buffer. |
All these routines exist also in Unicode versions.
Note that for conversion of codepages and Unicode strings, a Unicode manager must be present. On windows, the system is used for this. On Unix, one of the fpwidestring or cwstring units must be used.