Codage UTF-8

Informations générales

Avec EcoStruxure Machine Expert V2.2 et les versions ultérieures, le type de données STRING peut être codé dans le format Latin 1 ou UTF-8. Pour plus d'informations, consultez les paragraphes Codage UTF-8 à l'échelle du projet et Codage de littéraux simples dans le format UTF-8.

Comme le codage UTF-8 fournit le jeu de caractères le plus complet, il est recommandé d'activer UTF-8 pour les nouveaux projets, ainsi que pour les projets existants destinés à être utilisés dans un nouveau contexte.

EcoStruxure Machine Expert peut traiter une grande variété de caractères pour afficher des messages de diagnostic ou des visualisations dans différentes langues, mais aussi pour accepter les saisies d'utilisateur dans ces langues et caractères ou symboles.

Si un jeu de caractères complet n'est pas requis ou si un projet n'est pas sujet à modification, les chaînes peuvent être codées dans le format Latin 1. Par ailleurs, les jeux de caractères suivants sont pris en charge :

Jeu de caractères

Numéro de page de code

Description

Codage des caractères

ASCII

20127

  • 128 caractères

  • Convient aux textes en anglais.

Caractère codé sur 7 bits

DOS Latin 1

819, 850

  • Conforme à ISO/IEC 8859.

  • Convient aux langues d'Europe occidentale dans la ligne de commande Windows.

Caractère codé sur 8 bits

Latin 1

28591

  • Conforme à ISO/IEC 8859–1.

  • Fréquemment utilisé pour les pages HTML avec äöüß mais sans ou, par exemple, les caractères spéciaux français.

Caractère codé sur 8 bits

Codage Windows 1252

1252

  • Jeu de caractères Windows par défaut pour les pays d'Europe occidentale.

  • Windows utilise en interne le format UTF-16.

  • Contient tous les caractères de ISO/IEC 8859–1 et ISO/IEC 8859–15 mais avec un codage en partie différent.

Caractère codé sur 8 bits

Unicode

-

  • Jeu de caractères universel pour un large éventail de langues, y compris les langues historiques, le braille, la musique ou les émojis.

  • Plus de 100 000 caractères peuvent être affichés.

  • Chaque caractère a un code numérique.

  • Par opposition à ASCII, une distinction est faite entre l'affectation de points de code aux caractères et le codage des caractères.

  • Les codes numériques < 128 sont compatibles ASCII

  • Les codes numériques < 256 sont compatibles ISO/IEC 8859–1

Pour plus d'informations, consultez https://home.unicode.org/.

-

Unicode 14.0

-

144 697 caractères

-

UTF-16

1200

  • Special Unicode

  • Utilisé dans certains systèmes d'exploitation (Windows, OS X) et langages de programmation (Java, .NET) pour la représentation interne des caractères.

  • Les différentes architectures informatiques codent différemment les caractères de 4 octets.

    Ordre d'octet Little Endian pour UTF-16LE.

Caractère codé sur 16 bits

Les caractères sont codés sur 2 ou 4 octets.

UTF-8

65001

  • Format de codage orienté octet de caractères Unicode.

  • Le plus utilisé.

  • Utilisé dans les systèmes d'exploitation GNU/Linux et Unix et dans divers services Internet (messagerie, Web, navigateur).

  • Compatible avec les caractères ASCII pour les 128 premiers (0 à 127).

Tuple de mots de 8 bits par caractère

Les caractères sont codés dans différentes longueurs de 1 à 4 octets.

Codage UTF-8 à l'échelle du projet

La boîte de dialogue Paramètres de projet > Options de compilation fournit le paramètre Codage UTF8 pour STRING qui vous permet de configurer le codage UTF-8 pour toutes les chaînes de type de données STRING à travers tout le projet. Consultez la rubrique Paramètres de projet - Options de compilation dans l'aide en ligne des commandes de menu.

NOTE : Avant de définir le format de codage UTF-8, exécutez la règle d'analyse statique SA0175 sur votre code pour détecter les structures susceptibles de poser des problèmes avec le codage UTF-8.

Les types de données WSTRING ne sont pas affectés par ce paramètre. Ils sont toujours codés en tant que Unicode dans le format UTF-16.

Pour le type de données STRING, le codage à l'échelle du projet est le suivant :

Option Codage UTF8 pour STRING

Codage à l'échelle du projet

Sélectionné

UTF-8

Non sélectionné

  • Codage Windows 1252 (codage Windows par défaut)

  • Latin 1

Avec le codage UTF-8 activé à l'échelle du projet, les opérateurs de conversion STRING_TO peuvent être utilisés comme indiqué dans Conversions STRING_TO.

Si le codage UTF-8 à l'échelle du projet est activé, ce paramètre s'applique également aux fonctions de bibliothèque et aux modules complémentaires.

Codage de littéraux simples dans le format UTF-8

Si le codage Latin 1 est utilisé dans tout le projet (Codage UTF8 pour STRING n'est pas sélectionné), vous pouvez coder des littéraux simples dans le format UTF-8. Pour cela, ajoutez le préfixe de type UTF8# à chaque littéral.

{attribute 'monitoring_encoding' := 'UTF-8'}
strVarUtf8: STRING := UTF8#'你好,世界!ÜüÄäÖö';
NOTE : Si vous utilisez des chaînes codées en UTF-8 simple, vérifiez qu'elles sont interprétées correctement où qu'elles soient utilisées.

Exemple : Une variable de type chaîne dans le serveur OPC UA sera convertie en UTF-8 avant d'être transférée vers un client si le paramètre n'est pas sélectionné. Des valeurs telles que UTF8#'äöü' peuvent ainsi être mal interprétées.

Une condition similaire peut se produire avec les chaînes affichées dans la visualisation.

Pour plus d'informations, voir

Manipulation de chaînes

Utilisez les fonctions de bibliothèque pour manipuler les chaînes.

AVIS
MANIPULATION DE CHAÎNE INATTENDUE
N'utilisez PAS l'accès par index à une variable de type STRING pour manipuler des chaînes, car cela peut entraîner des résultats inattendus lorsque le codage UTF-8 est activé à l'échelle du projet.
Le non-respect de ces instructions peut provoquer des dommages matériels.