Codifica UTF-8

Informazioni generali

Con EcoStruxure Machine Expert V2.2 e versioni successive, il tipo di dati STRING è codificabile in formato Latin 1 o UTF-8. Per i dettagli, consultare i paragrafi Codifica UTF-8 a livello di progetto e Codifica di singoli letterali in formato UTF-8.

Poiché la codifica UTF-8 fornisce il set di caratteri più completo, è buona norma abilitare la codifica UTF-8 per i nuovi progetti e i progetti esistenti da utilizzare in un nuovo contesto.

EcoStruxure Machine Expert è in grado di elaborare un'ampia varietà di caratteri per visualizzare messaggi di diagnostica o visualizzazioni in diverse lingue, nonché di accettare l'immissione utente in tali lingue e caratteri o simboli.

Se non è richiesto un set di caratteri completo o se un progetto non è soggetto a modifiche, le stringhe possono essere codificate in formato Latin 1. Sono inoltre supportati i seguenti set di caratteri:

set di caratteri

Numero tabella codici

Descrizione

Codifica caratteri

ASCII

20127

  • 128 caratteri

  • Adatto per testi in inglese.

Carattere codificato a 7 bit

DOS Latin 1

819, 850

  • Conforme a ISO/IEC 8859.

  • Adatto per le lingue dell'Europa occidentale nella riga di comando di Windows.

Carattere codificato a 8 bit

Latin 1

28591

  • Conforme a ISO/IEC 8859–1.

  • Utilizzato frequentemente per pagine HTML con äöüß ma senza o, ad esempio, i caratteri speciali francesi.

Carattere codificato a 8 bit

Codifica Windows 1252

1252

  • Set di caratteri Windows predefinito per i paesi dell'Europa occidentale.

  • Windows utilizza internamente il formato UTF-16.

  • Contiene tutti i caratteri di ISO/IEC 8859–1 e ISO/IEC 8859–15 ma in parte con codifica diversa.

Carattere codificato a 8 bit

Unicode

-

  • Set di caratteri universale per una vasta gamma di lingue, tra cui lingue storiche, Braille, musica o emoji.

  • È possibile visualizzare più di 100.000 caratteri.

  • Ogni carattere ha un codice numerico.

  • A differenza di ASCII, viene fatta una distinzione tra l'assegnazione di punti di codice ai caratteri e la codifica dei caratteri.

  • I codici numerici < 128 sono ASCII compatibili

  • I codici numerici < 256 sono ISO/IEC 8859–1 compatibili

Per ulteriori informazioni, consultare https://home.unicode.org/.

-

Unicode 14.0

-

144.697 caratteri

-

UTF-16

1200

  • Unicode speciale

  • Utilizzato in alcuni sistemi operativi (Windows, OS X) e linguaggi di programmazione (Java, .NET) per la rappresentazione interna dei caratteri.

  • Architetture di computer diverse codificano i caratteri a 4 byte in modo diverso.

    Ordine byte Little Endian per UTF-16LE.

Caratteri codificati a 16 bit

I caratteri sono codificati in 2 byte o 4 byte.

UTF-8

65001

  • Formato di codifica basato su byte di caratteri Unicode.

  • Ampiamente utilizzato.

  • Utilizzato nei sistemi operativi GNU/Linux e Unix e nei vari servizi Internet (e-mail, Web, browser).

  • Compatibile con i caratteri ASCII nei primi 128 caratteri (0 ... 127).

Tupla di parole a 8 bit per carattere

I caratteri sono codificati in lunghezze diverse da 1 a 4 byte.

Codifica UTF-8 a livello di progetto

La finestra di dialogo Impostazioni progetto > Opzioni del compilatore fornisce il parametro Codifica UTF8 per STRING che consente di configurare la codifica UTF-8 per tutte le stringhe del tipo di dati STRING nell'intero progetto. Vedere Impostazioni progetto - Opzioni del compilatore nella Guida in linea dei comandi di menu.

NOTA: prima di impostare il formato di codifica su UTF-8, eseguire la regola di analisi statica SA0175 sul codice per poter rilevare costrutti in grado di causare problemi con la codifica UTF-8.

I tipi di dati WSTRING non sono interessati da questa impostazione. Sono sempre codificati come Unicode in formato UTF-16.

Per il tipo di dati STRING, la codifica a livello di progetto è la seguente:

Opzione Codifica UTF8 per STRING

Codifica a livello di progetto

Selezionata

UTF-8

Non selezionata

  • Codifica Windows 1252 (codifica Windows predefinita)

  • Latin 1

Con la codifica UTF-8 a livello di progetto abilitata, gli operatori di conversione STRING_TO possono essere utilizzati come descritto in Conversioni STRING_TO.

Se la codifica UTF-8 a livello di progetto è attivata, questa impostazione si applica anche alle funzioni di libreria e ai componenti aggiuntivi.

Codifica di singoli letterali in formato UTF-8

Se si utilizza la codifica Latin 1 nel progetto (Codifica UTF8 per STRING non è selezionato), è possibile codificare singoli letterali in formato UTF-8. A questo scopo, aggiungere il prefisso di tipo UTF8# a ogni letterale.

{attribute 'monitoring_encoding' := 'UTF-8'}
strVarUtf8: STRING := UTF8#'你好,世界!ÜüÄäÖö';
NOTA: se si usano singole stringhe con codifica UTF-8, verificare che vengano interpretate correttamente ovunque vengano utilizzate.

Esempio: una variabile stringa nel server OPC UA verrà convertita in UTF-8 prima di essere trasferita a un client se l'impostazione non è selezionata. Ciò può determinare errate interpretazioni di valori come UTF8#'äöü'.

Una condizione simile può verificarsi con le stringhe visualizzate nella visualizzazione.

Per informazioni più dettagliate, consultare

Manipolazione stringa

Utilizzare le funzioni di libreria per manipolare le stringhe.

AVVISO
MANIPOLAZIONE INVOLONTARIA DELLA STRINGA
NON utilizzare l'accesso tramite indice a una variabile di tipo STRING per la manipolazione della stringa, poiché ciò potrebbe provocare risultati imprevisti se è attivata la codifica UTF-8 a livello di progetto.
Il mancato rispetto di queste istruzioni può provocare danni alle apparecchiature.