UTF-8 è una codifica efficace delle stringhe di caratteri Unicode, che ottimizza la codifica dei caratteri ASCII a supporto delle comunicazioni basate su testo.
Il protocollo WebSphere MQ Telemetry Transport utilizza una serie secondaria di UTF-8. Sono supportati solo i caratteri a byte singolo (non-estesi).
Il formato stringa UTF è mostrato nella tabella seguente.
bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
---|---|---|---|---|---|---|---|---|
byte 1 | MSB lunghezza messaggio | |||||||
byte 2 | LSB lunghezza messaggio | |||||||
byte 3 ... | Dati a caratteri codificati |
La lunghezza messaggio è il numero di byte dei caratteri stringa codificati, non il numero dei caratteri. Per le stringhe ASCII, tuttavia, questi corrispondono. Il formato dei caratteri codificati per i codici ASCII da 0x01 a 0x7F sono mostrati nella seguente tabella.
bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
---|---|---|---|---|---|---|---|---|
0 | Codice ASCII del carattere |
Ad esempio, la stringa di testo ASCII OTWP è codificata in UTF-8 come mostrato nella tabella di seguito.
bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
---|---|---|---|---|---|---|---|---|
byte 1 | MSB lunghezza messaggio (0x00) | |||||||
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |
byte 2 | LSB lunghezza messaggio (0x04) | |||||||
0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | |
byte 3 | 'O' (0x4F) | |||||||
0 | 1 | 0 | 0 | 1 | 1 | 1 | 1 | |
byte 4 | 'T' (0x54) | |||||||
0 | 1 | 0 | 1 | 0 | 1 | 0 | 0 | |
byte 5 | 'W' (0x57) | |||||||
0 | 1 | 0 | 1 | 0 | 1 | 1 | 1 | |
byte 6 | 'P' (0x50) | |||||||
0 | 1 | 0 | 1 | 0 | 0 | 0 | 0 |
I metodi del flusso dati Java writeUTF() e readUTF() utilizzano questo formato.