UTF-8 es una eficaz forma de codificación de series de caracteres Unicode que optimiza la codificación de caracteres ASCII para soportar las comunicaciones basadas en texto.
El protocolo WebSphere MQ Telemetry Transport utiliza un subconjunto de UTF-8. Sólo están soportados los caracteres de un solo byte (no ampliado).
El formato de la serie de caracteres UTF puede verse en la tabla que sigue.
bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
---|---|---|---|---|---|---|---|---|
byte 1 | MSB de longitud de mensaje | |||||||
byte 2 | LSB de longitud de mensaje | |||||||
bytes 3 ... | Datos de tipo carácter codificados |
La longitud de mensaje es el número de bytes de los caracteres codificados de las series de caracteres, no el número de caracteres. No obstante, para series de caracteres ASCII, estas dos cosas son lo mismo. El formato de los caracteres codificados para los códigos ASCII 0x01 a 0x7F aparecen en la tabla que sigue.
bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
---|---|---|---|---|---|---|---|---|
0 | Código de carácter ASCII |
Por ejemplo, la serie de caracteres de texto ASCII OTWP se codifica en UTF-8 como se muestra en la tabla siguiente.
bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
---|---|---|---|---|---|---|---|---|
byte 1 | MSB de longitud de mensaje (0x00) | |||||||
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |
byte 2 | LSB de longitud de mensaje (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 |
Los métodos de corriente de datos Java writeUTF() y readUTF() utilizan este formato.