Sign in Join
FPDoc Onlineexperiment

UnicodeSupport topic

In unit System

Unicode and codepage support.

Declaration

pascal
UnicodeSupport

Description

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:

NameDescription
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:

NameDescription
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:

NameDescription
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 or dynamic array.

Delete

Delete elements (characters) from a string or dynamic array.

SetString

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.

An experiment, built from development snapshots. Not the official Free Pascal or Lazarus documentation.