Skip to main content

数据类型: STRING

重要

在 Latin-1 编码的情况下,一个 STRING 变量总是每个字符 1 个字节加上一个额外的字节。例如,在标准的情况下,这会导致 81 个字节 STRING(80) 宣言。

在 UTF-8 编码的情况下,一个字符最长可达 4 个字节。但是,字符串的长度始终表示为 STRING 保留的字节数。因此,字符数和字符串长度之间不再存在 1:1 的关系。

STRING 数据类型被解释为 Latin-1 或 UTF-8:如果 字符串的 UTF-8 编码 编译选项被启用,然后所有字符串文字都以 UTF-8 格式解释。

宣言:

<variable name> : STRING( <size> ) := ' <text> ';

<variable name> : STRING[ <size> ] := ' <text> ';

<size> 内存大小和初始化是可选的。

207. 例子
sVar : STRING(46):= 'This is a string with memory for 46 characters.';
sVar_µ : STRING[10] := 'µ (Mü)';
sVar_ß : STRING[10] := 'Eszett';


数据类型的变量 STRING 可以包含任何字符串。大量的 <size> 在声明期间保留的内存是指字节数,并显示在括号或括号中。如果未定义大小,则默认保留 80 个字符。如果使用对于数据类型而言太长的文字初始化变量,则从右侧相应地截断该文字。

然而,字符串的长度并没有从根本上受到限制。如果您使用库的功能进行字符串操作 Standard 执行后,长度为 255 的字符串将被正确处理。如果您使用库的功能进行字符串操作 StringUtils 运行,您还可以使用更长的字符串(>255 个字符)。

当数据类型的变量 STRING 通过重置应用程序重新初始化,在初始值的终止空字符之后存在的(旧)字符串的内容不会被覆盖。这既适用于使用初始化值进行的初始化,也适用于使用默认初始化值 0 进行的初始化。

在编译器版本 3.5.18.0 及更高版本中,您可以选择字符串的编码格式。您可以在项目范围内指定字符串是以 Latin-1 格式还是 UTF-8 格式解释的。对于 UTF-8 编码,启用 字符串的 UTF8 编码 编译选项。

有关更多信息,请参阅: 编译选项UTF-8 编码

提示

在更改编码格式之前,建议使用静态分析规则 SA0175 检查您的代码。

有关详细信息,请参阅: 静态分析灯

提示

添加 {attribute 'monitoring_encoding' := 'UTF8'} 变量声明的pragma。然后就可以监听UTF8编码的变量内容了。

有关更多信息,请参阅: monitoring_encoding 语用