



NOTICE

In the case of Latin-1 encoding, the memory required for a STRING
variable is always 1 byte per character plus one additional byte. For example, this
results in 81 bytes in the case of a standard STRING(80)
declaration.
In the case of UTF-8 encoding, a character can be up to 4 bytes long. However, the length of the string always indicates the number of bytes which are reserved for the STRING. Therefore, there is no longer a 1:1 relationship between the character count and the string length.
The STRING
data type is interpreted as Latin-1 or UTF-8: If the “UTF-8 Encoding for STRING” compile option is enabled, then all string literals are interpreted in UTF-8 format.
Declaration:
<variable name> : STRING( <size> ) := ' <text> ';
<variable name> : STRING[ <size> ] := ' <text> ';
The memory size <size>
and initialization are optional.
Example
sVar : STRING(46):= 'This is a string with memory for 46 characters.'; sVar_µ : STRING[10] := 'µ (Mü)'; sVar_ß : STRING[10] := 'Eszett';
A variable of data type STRING
can contain any string. The amount of <size>
memory which is reserved during a declaration refers to the number of bytes and is
shown in parentheses or brackets. If a size is not defined, then 80 characters are
reserved by default. If a variable is initialized with a literal which is too long
for the data type, then the literal is truncated accordingly from the right.
The length of the strings is however not fundamentally limited. When you execute string
manipulations with the functions of the Standard
library, strings up to a length of 255 are processed correctly. When you execute
string manipulations with the functions of the StringUtils
library, you can also use longer strings (>255 characters).
When a variable of the data type STRING
is reinitialized by resetting the application, the contents of the (old) string,
which exist after the terminating null character of the initial value, are not overwritten.
This applies both to initialization with the initialization value and to initialization
with the default initialization value 0.
In compiler version 3.5.18.0 and higher, you can select the encoding format of strings. You have the possibility to specify project-wide whether strings are interpreted in Latin-1 format or UTF-8 format. For UTF-8 encoding, enable the “UTF8 Encoding for STRING” compile option.
For more information, see: ⮫ “Dialog: Project Settings: Compile Options ” and
Before you change the encoding format, it is advisable to check your code with static analysis rule SA0175.
For more information, see:
Add the {attribute 'monitoring_encoding' := 'UTF8'}
pragma to the declaration of a variable. Then you can monitor the contents of the
variable in UTF8 encoding.
For more information, see: Pragma: ⮫ “Attribute: monitoring_encoding ”