UTF-8 编码
基本
应用在 CODESYS 可以处理各种各样的字符,例如,以各种语言输出错误消息。或者以用户选择的语言显示可视化,该语言接受各种语言、字符或符号的用户输入。
如果不需要全面的字符集,或者不应该更改项目,则仍可以使用以 Latin-1 格式编码的字符串。
字符集 | 代码页码 | 描述 | 字符编码 |
---|---|---|---|
ASCII | 20127 |
| 7 位编码字符 |
DOS-Latin-1 | 819, 850 |
| 8位编码字符 |
拉丁语-1 | 28591 |
| 8位编码字符 |
Windows 1252 编码 | 1252 |
| 8位编码字符 |
统一码 |
有关更多信息,请参阅: https://home.unicode.org/ | ||
统一码 14.0 | 144,697 个字符 | ||
UTF-16 | 1200 |
| 16 位编码字符 字符被编码为 2 个字节或 4 个字节。 |
UTF-8 | 65001 |
| 每个字符的 8 位字元组 字符以 1 到 4 个字节的不同长度编码。 |
UTF-8 输入 CODESYS
提示
UTF-8 编码是字符集最全面的编码。因此,建议您为新项目以及现有项目启用 UTF-8 编码以在新环境中使用。
数据类型 | 编译选项:STRING 的 UTF8 编码 | 项目范围内使用哪种编码? |
---|---|---|
| 启用 | UTF-8 |
已禁用 | Windows 1252 编码(默认 Windows 编码) 拉丁语-1 | |
| 启用 | UTF-16 |
已禁用 | UTF-16 |
在 CODESYS, 这 STRING
数据类型可以用 Latin-1 或 UTF-8 格式编码。这 WSTRING
数据类型始终将其字符编码为 UTF-16 中的 Unicode。
以 UTF-8 格式编码单个字符串文字
即使项目范围的编码格式设置为 Latin-1,您也可以将单个文字编码为 UTF-8 格式。为此,请添加 UTF8#
文字的类型前缀。
{attribute 'monitoring_encoding' := 'UTF-8'} strVarUtf8: STRING := UTF8#'你好,世界!ÜüÄäÖö';
有关详细信息,请参阅: 常量: UTF8#字符串; Pragma 属性: monitoring_encoding
UTF-8 编码的字符串转换
如果您在项目范围内启用了 UTF-8 编码,则可以照常使用字符串转换功能。
字符串操作
使用库函数来操作您的字符串。
如果 STRING
变量应该被操纵,那么对 ASCII 格式变量的索引访问通常会导致所需的结果。最好不要使用这种结构。这不仅仅是一种糟糕的编程风格。更糟糕的是,使用 UTF-8 编码,索引访问会导致不必要的字符串操作。
UTF-8 编码仅用于项目范围的配置
如果项目范围的编译选项使用 UTF-8 编码 字符串的 UTF8 编码 已启用。然后,库函数和附加组件也将根据此设置进行定向。
如果您使用单个 UTF-8 编码的字符串,那么您必须确保在使用它们的任何地方都能正确解释它们。例如,如果未选择该设置,则 OPC 服务器中的字符串变量将在传输到客户端之前转换为 UTF-8。值如 UTF8#'äöü'
那么就会被误解。在可视化中输出字符串时可能会出现类似的问题。