Skip to main content

Identifiers with International Characters

Identifiers in CODESYS are evaluated ignoring capitalization, for example řízení=ŘÍZENÍ, øl=Øl, Ωμέγα=ΩΜΈΓΑ, or Мотор=МОТОР. On the other hand, characters with and without accents are different, for example naive!=naïve and Cafe!=Café.

This comparison rule applies to identifiers in IEC code – for example names of function blocks, functions, and variables – library identifiers, and device identifiers, and works the same way in CODESYS 3 and CODESYS 4.

. However, the Unicode standard also includes characters which – for technical reasons – cannot always be handled consistently. The following character groups should be avoided:
  • Ligatures, for example œ⇔oe, æ⇔ae, and fi⇔fi

  • Characters with full width or double width, for example A⇔A), Z⇔Z, or 0⇔0

  • Historical characters and characters with ambiguous representations depending on uppercase and lowercase letters, for example the German double-s (ß⇔ss), the German long-s (ſ⇔s/S), the Arabic/Indian numerals (2⇔2), the Turkic i variants(ı⇔i/I⇔İ), or the Hungarian Dz/DZ.

These character groups are partially handled in different ways by CODESYS 3 and CODESYS 4, and inconsistencies can also occur within a development environment. The behavior can change after version updates of CODESYS or by operating system. In particular, you should not mix the way of writing – for example by declaring a function œuf and then calling it as oeuf, or relying on the fact that when searching for f or i the result file should be found.