UTF-8 是 Unicode 字符-字符串的有效编码,优化支持基于文本通信的 ASCII 字符编码。
WebSphere MQ 遥感传输方式 协议使用 UTF-8 的子集。仅支持单字节(非扩展的)字符。
下表中显示了 UTF 字符串格式。
位 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
---|---|---|---|---|---|---|---|---|
字节 1 | 消息长度 MSB | |||||||
字节 2 | 消息长度 LSB | |||||||
字节 3 ... | 编码的字符数据 |
消息长度是编码的字符串字符的字节数,而不是字符数。然而,对于 ASCII 字符串这是一样的。下表中显示了 ASCII 代码 0x01 到 0x7F 的编码字符格式。
位 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
---|---|---|---|---|---|---|---|---|
0 | 字符的 ASCII 代码 |
例如,如下表中所示,ASCII 文本字符串 OTMP 就是以 UTF-8 编码的。
位 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
---|---|---|---|---|---|---|---|---|
字节 1 | 消息长度 MSB(0x00) | |||||||
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |
字节 2 | 消息长度 LSB(0x04) | |||||||
0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | |
字节 3 | ‘O’(0x4F) | |||||||
0 | 1 | 0 | 0 | 1 | 1 | 1 | 1 | |
字节 4 | ‘T’(0x54) | |||||||
0 | 1 | 0 | 1 | 0 | 1 | 0 | 0 | |
字节 5 | ‘W’(0x57) | |||||||
0 | 1 | 0 | 1 | 0 | 1 | 1 | 1 | |
字节 6 | ‘P’(0x50) | |||||||
0 | 1 | 0 | 1 | 0 | 0 | 0 | 0 |
Java writeUTF() 和 readUTF() 数据流方法使用此格式。