字节序标记

16 位UTF-16形式的 Unicode 在交换时没有规定的 endian 方向。 这就要求通信过程正确评估 endian 方向。 为此,可将字符 U+FEFF ZERO WIDTH NO-BREAK SPACE 用作字节序号 (BOM)。 当以不正确的 endian 方向解释时,其值为 U+FFE,定义为 "非字符"。

有些应用程序,尤其是 Windows 系统,会在文件开头写入一个 BOM 字符。 在UTF-8 中,BOM 是字节 EF BB BF 的序列。 作为一种面向字节的编码,UTF-8 不存在内位问题,但有些应用程序(主要是 Windows 系统)会将 BOM 写入UTF-8编码文件的开头。 系统不会加载 BOM 代码点;您可以使用-bom开关删除初始 BOM 代码点。

您可以使用 "nzconvert命令删除UTF-8文件开头的 BOM,如下例所示:
nzconvert -f utf8 -t utf8 -bom -df input_file -of output_file
在进行UTF-16 转换时,可以使用三种转换器之一:UTF16、UTF16be 或UTF16le作为输入(-f选项)和输出(-t选项):
UTF16
在输入时,Netezza Performance Server会检查 BOM 以指示字节序;否则,Netezza Performance Server将输入解释为大字节序。 作为输出,Netezza Performance Server会写入 BOM 并以机器的本地字节序输出。 从UTF-16转换为其他编码(如UTF-8时,BOM 将被移除。
UTF16le
作为输入,将输入解释为小二进制。 作为输出,Netezza Performance Server以 little-endian 输出,不含 BOM。 任何 BOM 都会被视为数据并进行转换,例如转换为UTF-8。
UTF16be
作为输入,将所有输入解释为大二进制。 作为输出,Netezza Performance Server不需要 BOM 即可转换为大端。 任何 BOM 都会被视为数据并进行转换,例如转换为UTF-8。