UTF-8 编码

常规信息

使用 EcoStruxure Machine Expert V2.2 及更高版本,STRING 数据类型可以编码为 Latin 1UTF-8 格式。有关详细信息,请参阅相关段落 项目范围 UTF-8 编码以 UTF-8 格式编码单个数值

因为 UTF-8 编码可提供最全面的字符集,建议为新项目以及将在新上下文中使用的现有项目启用 UTF-8 编码。

EcoStruxure Machine Expert 可以处理各种字符,以显示不同语言的诊断消息或视图,并接受这些语言的用户输入以及字符或符号。

如果不需要全面的字符集,或者项目不会发生变化,字符串可以编码为 Latin 1 格式。此外,还支持以下字符集:

字符集

代码页码

描述

字符编码

ASCII

20127

  • 128 个字符

  • 适用于英语文本。

7 位编码字符

DOS Latin 1

819, 850

  • 遵从 ISO/IEC 8859

  • Windows 命令行适用于西欧语言。

8 位编码字符

Latin 1

28591

  • 遵从 ISO/IEC 8859–1

  • 常用于带有 äöüß 但没有 或法语特殊字符的 HTML 页面。

8 位编码字符

Windows 1252 编码

1252

  • 为西欧国家设置的缺省 Windows 字符集。

  • Windows 内部使用 UTF-16 格式。

  • 包含来自 ISO/IEC 8859–1ISO/IEC 8859–15 但部分编码不同的所有字符。

8 位编码字符

Unicode

-

  • 适用于各种语言的通用字符集,包括历史语言、盲文、乐符或表情符号。

  • 可以显示超过 100,000 个字符。

  • 每个字符都有一个数字代码。

  • ASCII 相反,在代码点对字符的分配和字符的编码之间进行区分。

  • < 128 的数字代码兼容 ASCII

  • < 256 的数字代码兼容 ISO/IEC 8859–1

有关详细信息,请参阅 https://home.unicode.org/

-

Unicode 14.0

-

144,697 个字符

-

UTF-16

1200

  • 特殊 Unicode

  • 在某些操作系统 (Windows, OS X) 和编程语言 (Java, .NET) 中用于内部字符表示。

  • 不同的计算机架构对 4 字节字符的编码方式不同。

    UTF-16LE 小尾数字节顺序。

16 位编码字符

字符以 2 字节或 4 字节进行编码。

UTF-8

65001

  • Unicode 字符的面向字节的编码格式。

  • 使用最广泛。

  • 用于 GNU/LinuxUnix 操作系统和各种互联网服务(电子邮件、Web、浏览器)。

  • 与前 128 个字符 (0...127) 中的 ASCII 字符兼容。

每字符 8 位字元组

字符的编码长度在 1 到 4 个字节之间。

项目范围 UTF-8 编码

项目设置 > 编译选项对话框提供参数 STRING 的 UTF8 编码可用于为整个项目中的所有数据类型 STRING 的字符串配置 UTF-8 编码。请参阅菜单命令在线帮助中的项目设置 — 编译选项菜单命令在线帮助中的。

注: 在将编码格式设置为 UTF-8,执行静态分析规则 SA0175帮助检测可能导致 UTF-8 编码问题的构造。

WSTRING 数据类型不受此设置的影响。它们始终以 UTF-16 格式编码为 Unicode

对于数据类型 STRING,项目范围编码如下:

STRING 的 UTF8 编码选项

项目范围编码

选择

UTF-8

未选择

  • Windows 1252 编码(缺省 Windows 编码)

  • Latin 1

使用项目范围 UTF-8 启用编码,可以使用 STRING_TO 转换操作符,如 STRING_TO 转换 所述。

如果启用项目范围 UTF-8 编码,则此设置也适用于库函数和加载项。

UTF-8 格式编码单个数值

如果在整个项目中使用 Latin 1 编码(取消选中 STRING 的 UTF8 编码),则可以以 UTF-8 格式对单个数值进行编码。为此,请为每个数值添加 UTF8# 类型前缀。

{attribute 'monitoring_encoding' := 'UTF-8'}
strVarUtf8: STRING := UTF8#'你好,世界!ÜüÄäÖö';
注: 如果使用单个 UTF-8 编码字符串,确保其无论在何处使用,都可正确解释。

示例:如果未选择设置,则在传输到客户端之前OPC UA 服务器中的字符串变量将转换为 UTF-8。这会产生值,例如 UTF8#'äöü' 被错误地解释。

在可视化中显示字符串也可能出现类似情况。

有关更多信息,请参阅

字符串操作

使用库函数操作字符串。

注意
意外的字符串操作
请勿使用对 STRING 类型变量的索引访问进行字符串操作,因为启用项目范围 UTF-8 编码时,这可能会导致意外的结果。
不遵循上述说明可能导致设备损坏。