バイト・オーダー・マーク

16 ビット UTF-16 形式の Unicode では、情報交換用のエンディアンの方向が規定されていません。 このため、通信プロセスでエンディアンの方向を正しく評価する必要があります。 この目的のために、文字 U+FEFF (ZERO WIDTH NO-BREAK SPACE) をバイト・オーダー・マーク (BOM) として利用できます。 正しくない方向のエンディアンで解釈すると、U+FFFE と評価されます (これは NOT A CHARACTER と定義されています)。

一部のアプリケーション、特にWindowsシステムでは、ファイルの先頭にBOM文字を書き込む。 UTF-8 では、BOM は、EF BB BF というバイト・シーケンスです。 バイト指向のエンコーディングであるため、UTF-8にはエンディアンの問題はありませんが、一部のアプリケーション(主にWindows)では、UTF-8でエンコードされたファイルの先頭にBOMを書き込みます。 システムはBOMコード・ポイントをロードしない。-bomスイッチを使用すると、初期のBOMコード・ポイントを削除できる。

UTF-8 ファイルの先頭から BOM を削除するには、次の例のように nzconvert コマンドを使用します。
nzconvert -f utf8 -t utf8 -bom -df input_file -of output_file
UTF-16 からの変換や UTF-16 への変換を行う場合は、入力 (-f オプション) と出力 (-t オプション) に 3 つのコンバーター UTF16、UTF16be、または UTF16le のうち 1 つを使用できます。
UTF16
入力として、Netezza Performance Serverはエンディアンを示すBOMをチェックし、そうでなければNetezza Performance Serverは入力をビッグエンディアンと解釈する。 出力として、Netezza Performance ServerはBOMを書き込み、マシンのネイティブエンディアンで出力する。 UTF-16 から他のエンコード (UTF-8 など) に変換する場合、BOM は削除されます。
UTF16le
入力の場合、入力をリトル・エンディアンと解釈します。 出力として、Netezza Performance ServerはBOMなしでリトルエンディアンで出力します。 BOM がある場合は、それをデータとして扱って変換します (UTF-8 への変換の場合など)。
UTF16be
入力の場合、すべての入力をビッグ・エンディアンと解釈します。 出力として、Netezza Performance ServerはBOMなしでビッグエンディアンに変換する。 BOM がある場合は、それをデータとして扱って変換します (UTF-8 への変換の場合など)。