The BYTE
ORDER
MARK
clause is used to specify whether the data file should be checked for the presence of a byte-order mark (BOM). This clause is meaningful only when the character set is Unicode.
BYTE
ORDER
MARK
NOCHECK
indicates that the data file should not be checked for a BOM and that all the data in the data file should be read as data.
BYTE
ORDER
MARK
CHECK
indicates that the data file should be checked for a BOM. This is the default behavior for a data file in a Unicode character set.
The following are examples of some possible scenarios:
If the data is specified as being little or big-endian and CHECK
is specified and it is determined that the specified endianness does not match the data file, then an error is returned. For example, suppose you specify the following:
DATA IS LITTLE ENDIAN BYTEORDERMARK CHECK
If the BOM is checked in the Unicode data file and the data is actually big-endian, then an error is returned because you specified little-endian.
If a BOM is not found and no endianness is specified with the DATA
IS...ENDIAN
parameter, then the endianness of the platform is used.
If BYTE
ORDER
MARK
NOCHECK
is specified and the DATA
IS...ENDIAN
parameter specified an endianness, then that value is used. Otherwise, the endianness of the platform is used.