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.
Set di caratteri | Numero di tabella codici | Descrizione | Codifica dei caratteri |
---|---|---|---|
ASCII | 20127 |
| Carattere codificato a 7 bit |
DOS-Latin-1 | 819, 850 |
| Carattere codificato a 8 bit |
Latino-1 | 28591 |
| Carattere codificato a 8 bit |
Codifica di Windows 1252 | 1252 |
| Carattere codificato a 8 bit |
Unicode |
Per ulteriori informazioni, vedere: https://home.unicode.org/ | ||
Unicode 14.0 | 144.697 caratteri | ||
UTF-16 | 1200 |
| Caratteri codificati a 16 bit I caratteri sono codificati in 2 byte o 4 byte. |
UTF-8 | 65001 |
| 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.
Tipo di dati | Opzione di compilazione: codifica UTF8 per STRING | Quale codifica viene utilizzata a livello di progetto? |
---|---|---|
| Abilitato | UTF-8 |
Disabilitato | Codifica Windows 1252 (codifica Windows predefinita) Latino-1 | |
| 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.