UTF-8-Codierung

Allgemeine Informationen

Mit EcoStruxure Machine Expert ab V2.2 kann der Datentyp STRING im Latin 1- oder UTF-8-Format codiert werden. Detaillierte Informationen finden Sie in den Abschnitten Projektweite UTF-8-Codierung und Codierung einzelner Literale im UTF-8-Format.

Da die UTF-8-Codierung den umfassendsten Zeichensatz bietet, empfiehlt es sich, die UTF-8-Codierung für neue Projekte sowie für vorhandene Projekte, die in einem neuen Kontext verwendet werden sollen, zu aktivieren.

EcoStruxure Machine Expert kann eine Vielzahl von Zeichen verarbeiten, um Diagnosemeldungen oder Visualisierungen in verschiedenen Sprachen anzuzeigen und Benutzereingaben in diesen Sprachen sowie Zeichen oder Symbole zu akzeptieren.

Wenn kein umfassender Zeichensatz erforderlich ist oder wenn ein Projekt nicht geändert werden muss, können Zeichenfolgen folgendermaßen im Latin 1-Format codiert werden. Darüber hinaus werden folgende Zeichensätze unterstützt:

Zeichensatz

Codeseitennummer

Beschreibung

Zeichencodierung

ASCII

20127

  • 128 Zeichen

  • Geeignet für englische Texte.

7-Bit-codiertes Zeichen

DOS Latin 1

819.850

  • Entspricht ISO/IEC 8859.

  • Geeignet für westeuropäische Sprachen in der Windows-Befehlszeile.

8-Bit-codiertes Zeichen

Latin 1

28591

  • Entspricht ISO/IEC 8859–1.

  • Häufig verwendet für HTML-Seiten mit äöüß aber ohne oder beispielsweise französische Sonderzeichen.

8-Bit-codiertes Zeichen

Windows 1252 -Codierung

1252

  • Windows-Standard-Zeichensatz für westeuropäische Länder.

  • Windows verwendet intern das UTF-16-Format.

  • Enthält alle Zeichen aus ISO/IEC 8859–1 und ISO/IEC 8859–15, aber teilweise mit unterschiedlicher Codierung.

8-Bit-codiertes Zeichen

Unicode

-

  • Universeller Zeichensatz für eine Vielzahl von Sprachen, einschließlich historischer Sprachen, Braille, Musik oder Emojis.

  • Es können mehr als 100.000 Zeichen angezeigt werden.

  • Jedes Zeichen hat einen numerischen Code.

  • Im Gegensatz zu ASCII wird zwischen der Zuweisung von Codepunkten zu Zeichen und der Codierung der Zeichen unterschieden.

  • Numerische Codes < 128 sind ASCII-kompatibel.

  • Numerische Codes < 256 sind ISO/IEC 8859–1-kompatibel.

Weitere Informationen finden Sie unter https://home.unicode.org/.

-

Unicode 14.0

-

144.697 Zeichen

-

UTF-16

1200

  • Sonder-Unicode

  • In einigen Betriebssystemen (Windows, OS X) und Programmiersprachen (Java, .NET) für die interne Zeichendarstellung verwendet.

  • Verschiedene Computerarchitekturen codieren die 4-Byte-Zeichen unterschiedlich.

    Little-Endian-Byte-Reihenfolge für UTF-16LE.

16-Bit-codierte Zeichen

Die Zeichen sind entweder in 2 Bytes oder in 4 Bytes codiert.

UTF-8

65001

  • Byte-orientiertes Codierungsformat von Unicode-Zeichen.

  • Am häufigsten verwendet.

  • Verwendet in GNU/Linux- und Unix-Betriebssystemen und in verschiedenen Internetdiensten (E-Mail, Web, Browser).

  • Kompatibel mit ASCII-Zeichen in den ersten 128 Zeichen (0 bis 127).

Tupel von 8-Bit-Wörtern pro Zeichen

Die Zeichen sind in verschiedenen Längen von 1 bis 4 Bytes codiert.

Projektweite UTF-8-Codierung

Das Dialogfeld Projekteinstellungen > Compiler-Optionen liefert den Parameter UTF8-Codierung für STRING, der Ihnen die Konfiguration der UTF-8-Codierung für alle Zeichenfolgen vom Datentyp STRING im gesamten Projekt ermöglicht. Siehe Projekteinstellungen - Compiler-Optionen in der Online-Hilfe für Menübefehle.

HINWEIS: Bevor Sie das Codierformat auf UTF-8 einstellen, führen Sie den Befehl Statische Analyseregel SA0175 in Ihrem Code aus, um Konstrukte zu erkennen, die Probleme mit der UTF-8-Codierung verursachen können.

WSTRING-Datentypen werden von dieser Einstellung nicht beeinflusst. Sie werden immer als Unicode im UTF-16-Format codiert.

Für den Datentyp STRING ist die projektweite Codierung wie folgt:

Option UTF8-Codierung für STRING

Projektweite Codierung

Ausgewählt

UTF-8

Nicht ausgewählt

  • Windows 1252-Codierung (Windows-Stanardcodierung)

  • Latin 1

Mit aktivierter projektweiter UTF-8-Codierung können die STRING_TO-Konvertierungsoperatoren wie unter STRING_TO-Konvertierungen beschrieben verwendet werden.

Wenn die projektweite UTF-8-Codierung aktiviert ist, gilt diese Einstellung auch für Bibliotheksfunktionen und Add-Ons.

Codierung einzelner Literale im UTF-8-Format

Wenn die Latin 1-Codierung im gesamten Projekt verwendet wird (UTF8-Codierung für STRING ist nicht ausgewählt), können Sie einzelne Literale im UTF-8-Format codieren. Fügen Sie hierzu das UTF8#-Typpräfix jedem Literal hinzu.

{attribute 'monitoring_encoding' := 'UTF-8'}
strVarUtf8: STRING := UTF8#'你好,世界!ÜüÄäÖö';
HINWEIS: Wenn Sie einzelne UTF-8-Codierte Zeichenfolgen verwenden, stellen Sie sicher, dass sie korrekt interpretiert werden, wo immer sie verwendet werden.

Beispiel: Eine Zeichenfolgenvariable im OPC UA-Server wird in UTF-8 konvertiert, bevor sie an einen Client übertragen wird, wenn die Einstellung nicht ausgewählt ist. Dies führt dazu, dass Werte wie UTF8#'äöü' falsch interpretiert werden.

Ein ähnlicher Zustand kann bei Zeichenfolgen auftreten, die in der Visualisierung angezeigt werden.

Weitere Informationen finden Sie hier:

Zeichenfolgenmanipulation

Verwenden Sie Bibliotheksfunktionen zur Manipulation von Zeichenfolgen.

HINWEIS
UNBEABSICHTIGTE ZEICHENFOLGENMANIPULATION
Verwenden Sie KEINEN Indexzugriff auf eine Variable des Typs STRING zur Zeichenfolgenmanipulation, da dies im gesamten Projekt zu unbeabsichtigten Ergebnissen führen kann, wenn die UTF-8-Codierung aktiviert ist.
Die Nichtbeachtung dieser Anweisungen kann Sachschäden zur Folge haben.