UTF-16 のバイト順

UTF-16 文字は 2 つのバイト順のどちらかで格納できます。通常は、コンピューターのデフォルトのバイト順が使用されます。たとえば、Intel ベースのマシンでは、文字ペアの LSB が、最小のメモリ アドレスのバイト位置に格納されます (lo-hi バイト順)。ほかの多くのマシンでは、MSB が最初に格納されます (hi-lo バイト順)。Unicode 文字を含む COBOL プログラムに、どちらかのバイト順を使用するマシンからアクセスする必要がある場合は、hi-lo 順でデータが格納されるように lo-hi マシンのバイト順を変更してください。これを実行するには、UNICIODE 指令を使用します。この指令では、バイト順を NATIVE (マシンのデフォルトを使用) または PORTABLE (常に hi-lo) のどちらかに指定できます。次の構文を使用します。

unicode({native | portable})

たとえば、文字「A」は UTF-16 では (0x00, 0x41) と表されます。Intel ベースのマシンでは、次のように格納されます。

0x41 0x00

一方、UNICODE(PORTABLE) 指令を指定すると、次のように格納されます。

0x00 0x41