UTF-8 é uma codificação eficiente de cadeias de caracteres Unicode que otimiza a codificação de caracteres ASCII no suporte de comunicações baseadas em texto.
O protocolo WebSphere MQ Telemetry Transport utiliza um subconjunto de UTF-8. São suportados apenas caracteres de byte único (não estendidos).
O formato de cadeia UTF é mostrado na tabela abaixo.
bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
---|---|---|---|---|---|---|---|---|
byte 1 | Comprimento de Mensagem MSB | |||||||
byte 2 | Comprimento de Mensagem LSB | |||||||
bytes 3 ... | Dados de Caracteres Codificados |
Comprimento da Mensagem é o número de bytes de caracteres de cadeia codificados, não o número de caracteres. No entanto, para cadeias ASCII, eles são os mesmos. O formato de caracteres codificados para códigos ASCII 0x01 a 0x7F também é mostrado na tabela abaixo.
bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
---|---|---|---|---|---|---|---|---|
0 | Código de Caracteres ASCII |
Por exemplo, a cadeia de texto ASCII OTWP é codificada em UTF-8, como mostrado na tabela abaixo.
bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
---|---|---|---|---|---|---|---|---|
byte 1 | Comprimento de Mensagem MSB (0x00) | |||||||
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |
byte 2 | Comprimento de Mensagem LSB (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 |
Os métodos de fluxo de dados Java writeUTF() e readUTF() utilizam este formato.