Skip to main content

Codifica UTF-8

Nozioni di base

Applicazioni in CODESYS può elaborare un'ampia varietà di caratteri, ad esempio, per emettere un messaggio di errore in varie lingue. Oppure per visualizzare le visualizzazioni in una lingua selezionata dall'utente che accetta l'input dell'utente in un'ampia varietà di lingue, caratteri o simboli.

Se non è necessario un set di caratteri completo o se un progetto non deve essere modificato, è comunque possibile utilizzare stringhe codificate in formato Latin-1.

Tabella 3. Tabelle di set di caratteri

Set di caratteri

Numero di tabella codici

Descrizione

Codifica dei caratteri

ASCII

20127

  • 128 caratteri

  • Adatto per testi in inglese

Carattere codificato a 7 bit

DOS-Latin-1

819, 850

  • Conforme alla norma ISO 8859

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

Carattere codificato a 8 bit

Latino-1

28591

  • Conforme a ISO-8859-1

  • Spesso utilizzato per le pagine HTML con äöüß ma senza € o ad esempio senza caratteri francesi speciali

Carattere codificato a 8 bit

Codifica di 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 da ISO 8859-1 e ISO 8859-15, ma in parte con codifica diversa

Carattere codificato a 8 bit

Unicode

  • Set di caratteri universale per tutte le lingue possibili, comprese le lingue storiche, Braille, musica o emoji

  • È possibile visualizzare più di 100.000 caratteri.

  • Ogni carattere ha un codice numerico.

  • Contrariamente all'ASCII, viene fatta una separazione tra l'assegnazione di punti di codice ai caratteri e la codifica dei caratteri.

  • Il codice numerico < 128 è compatibile con ASCII

  • I codici numerici < 256 sono compatibili con ISO 8859-1

Per ulteriori informazioni, vedere: 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 dei caratteri interni

  • Va notato che diverse architetture di computer codificano i caratteri a 4 byte in modo diverso.

    Ordine di 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 orientato ai byte di caratteri Unicode

  • Il più diffuso

  • Utilizzato nei sistemi operativi GNU/Linux e Unix e in 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 lunghezza diversa da 1 a 4 byte.



UTF-8 pollici CODESYS

Suggerimento

La codifica UTF-8 è la codifica con il set di caratteri più completo. Pertanto, si consiglia di abilitare la codifica UTF-8 per i nuovi progetti e per i progetti esistenti da utilizzare in un nuovo contesto.

Tabella 4. Codifica a livello di progetto in CODESYS

Tipo di dati

Opzione di compilazione: codifica UTF8 per STRING

Quale codifica viene utilizzata a livello di progetto?

STRING

Abilitato

UTF-8

Disabilitato

Codifica Windows 1252 (codifica Windows predefinita)

Latino-1

WSTRING

Abilitato

UTF-16

Disabilitato

UTF-16



Nel CODESYS, il STRING il tipo di dati può essere codificato nei formati Latin-1 o UTF-8. Il WSTRING il tipo di dati codifica sempre i suoi caratteri come Unicode in UTF-16.

Codifica di una singola stringa letterale in formato UTF-8

Anche se il formato di codifica a livello di progetto è impostato su Latin-1, puoi codificare un singolo letterale nel formato UTF-8. Per fare ciò, aggiungi il UTF8# digitare il prefisso al letterale.

{attribute 'monitoring_encoding' := 'UTF-8'}
strVarUtf8: STRING := UTF8#'你好,世界!ÜüÄäÖö';

Per ulteriori informazioni, vedere: Costante: Stringa UTF8#; Attributo Pragma: monitoring_encoding

Conversione di stringhe per la codifica UTF-8

Se hai abilitato la codifica UTF-8 a livello di progetto, puoi utilizzare le funzioni di conversione delle stringhe come al solito.

Manipolazione di stringhe

Usa le funzioni della libreria per manipolare le tue stringhe.

Se STRING le variabili devono essere manipolate, quindi un accesso di indice a una variabile in formato ASCII porta spesso al risultato desiderato. È meglio non usare questo costrutto. Non è solo un cattivo stile di programmazione. A peggiorare le cose, con la codifica UTF-8, l'accesso all'indice porta a manipolazioni di stringhe indesiderate.

Codifica UTF-8 solo per la configurazione a livello di progetto

Una codifica UTF-8 viene utilizzata se l'opzione di compilazione a livello di progetto Codifica UTF8 per STRING è abilitato. Anche le funzioni della libreria e i componenti aggiuntivi vengono orientati in base a questa impostazione.

Se usi singole stringhe codificate UTF-8, devi assicurarti che vengano interpretate correttamente ovunque vengano utilizzate. Ad esempio, una variabile stringa nel server OPC verrà convertita in UTF-8 prima di essere trasferita a un client se l'impostazione non è selezionata. Valori come UTF8#'äöü' verrebbe quindi male interpretato. Problemi simili possono sorgere durante l'output di stringhe nella visualizzazione.