Encodage UTF-8
Bases
Candidatures en CODESYS peut traiter une grande variété de caractères, par exemple, pour produire un message d'erreur dans différentes langues. Ou pour afficher des visualisations dans une langue sélectionnée par l'utilisateur qui accepte la saisie de l'utilisateur dans une grande variété de langues, de caractères ou de symboles.
Si un jeu de caractères complet n'est pas nécessaire, ou si un projet ne doit pas être modifié, les chaînes codées au format Latin-1 peuvent toujours être utilisées.
Jeu de caractères | Numéro de page de code | La description | Encodage de caractère |
---|---|---|---|
ASCII | 20127 |
| Caractère codé 7 bits |
DOS-Latin-1 | 819, 850 |
| Caractère codé 8 bits |
Latin-1 | 28591 |
| Caractère codé 8 bits |
Encodage Windows 1252 | 1252 |
| Caractère codé 8 bits |
Unicode |
Pour plus d'informations, consultez : https://home.unicode.org/ | ||
Unicode 14.0 | 144 697 caractères | ||
UTF-16 | 1200 |
| Caractères codés 16 bits Les caractères sont codés soit sur 2 octets, soit sur 4 octets. |
UTF-8 | 65001 |
| Tuple de mots de 8 bits par caractère Les caractères sont codés dans différentes longueurs de 1 à 4 octets. |
UTF-8 dans CODESYS
Astuce
L'encodage UTF-8 est l'encodage avec le jeu de caractères le plus complet. Par conséquent, il est recommandé d'activer le codage UTF-8 pour les nouveaux projets ainsi que pour les projets existants à utiliser dans un nouveau contexte.
Type de données | Option de compilation : encodage UTF8 pour STRING | Quel encodage est utilisé à l'échelle du projet ? |
---|---|---|
| Autorisé | UTF-8 |
Désactivé | Encodage Windows 1252 (encodage Windows par défaut) Latin-1 | |
| Autorisé | UTF-16 |
Désactivé | UTF-16 |
Dans CODESYS, la STRING
Le type de données peut être encodé aux formats Latin-1 ou UTF-8. le WSTRING
Le type de données encode toujours ses caractères en Unicode en UTF-16.
Encodage d'un seul littéral de chaîne au format UTF-8
Même si le format d'encodage à l'échelle du projet est défini sur Latin-1, vous pouvez encoder un seul littéral au format UTF-8. Pour ce faire, ajoutez le UTF8#
préfixe de type au littéral.
{attribute 'monitoring_encoding' := 'UTF-8'} strVarUtf8: STRING := UTF8#'你好,世界!ÜüÄäÖö';
Pour plus d'informations, voir : Constante : Chaîne UTF8#; Attribut Pragma : monitoring_encoding
Conversion de chaîne pour l'encodage UTF-8
Si vous avez activé le codage UTF-8 à l'échelle du projet, vous pouvez utiliser les fonctions de conversion de chaîne comme d'habitude.
Manipulation de chaînes
Utilisez les fonctions de la bibliothèque pour manipuler vos chaînes.
Si STRING
variables doivent être manipulées, alors un accès d'index à une variable au format ASCII conduit souvent au résultat souhaité. Il vaut mieux ne pas utiliser cette construction. Ce n'est pas seulement un mauvais style de programmation. Pour aggraver les choses, avec le codage UTF-8, l'accès à l'index entraîne une manipulation indésirable des chaînes.
Encodage UTF-8 uniquement pour la configuration à l'échelle du projet
Un encodage UTF-8 est utilisé si l'option de compilation à l'échelle du projet Encodage UTF8 pour STRING est autorisé. Les fonctions de la bibliothèque et les modules complémentaires sont alors également orientés en fonction de ce paramètre.
Si vous utilisez des chaînes uniques encodées en UTF-8, vous devez vous assurer qu'elles sont interprétées correctement partout où elles sont utilisées. Par exemple, une variable de chaîne dans le serveur OPC sera convertie en UTF-8 avant d'être transférée à un client si le paramètre n'est pas sélectionné. Des valeurs telles que UTF8#'äöü'
serait alors mal interprété. Des problèmes similaires peuvent survenir lors de la sortie de chaînes dans la visualisation.