In general, SQL*Loader express mode handles byte order marks in the same way that a load performed using a SQL*Loader control file does. In summary:
For data files with a unicode character set, SQL*Loader express mode checks for a byte order mark at the beginning of the file.
For a UTF16 data file, if a byte order mark is found, the byte order mark sets the byte order for the data file. If no byte order mark is found, the byte order of the system where SQL*Loader is executing is used for the data file.
A UTF16 data file can be loaded regardless of whether or not the byte order (endianness) is the same byte order as the system on which SQL*Loader express is running.
For UTF8 data files, any byte order marks found are skipped.
A load is terminated if multiple data files are involved and they use different byte ordering.
"Byte Ordering" for more information about how SQL*Loader handles byte order in data files