utf-8 は、テキスト・ベースの通信サポートにおいて ASCII 文字のエンコードを最適化した、 効率的な Unicode 文字ストリングのエンコードです。
WebSphere MQ Telemetry Transport プロトコルは utf-8 のサブセットを使用します。 サポートされているのは、1 バイト (非拡張) 文字だけです。
UTF ストリング形式については、以下の表で示しています。
ビット | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
---|---|---|---|---|---|---|---|---|
バイト 1 | Message Length MSB | |||||||
バイト 2 | Message Length LSB | |||||||
バイト 3 ... | エンコード文字データ |
「メッセージ長」は、文字数ではなく、 エンコードされるストリング文字のバイト数です。 ただし ASCII ストリングの場合、 これらは同じになります。 ASCII コード 0x01 から 0x7F のエンコード文字の形式については、 以下の表で示しています。
ビット | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
---|---|---|---|---|---|---|---|---|
0 | 文字の ASCII コード |
例えば、ASCII テキスト・ストリング OTWP は、以下の表に示されているように、 UTF-8 でエンコードされます。
ビット | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
---|---|---|---|---|---|---|---|---|
バイト 1 | Message Length MSB (0x00) | |||||||
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |
バイト 2 | Message Length 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() データ・ストリーム・メソッドは、 この形式を使用します。