BC-RDI datastream does not contain Byte Order Mark. The devices type UCPLAIN passes data always with UTF16 BE, see SAP Note 372670.
For SAP there are several code-pages, see Note 552464.
Excerpt:
Codepage Short-name Plattform
1100 SAP internal, like ISO 8859-1 SAP non Unicode systemes
8000 Shift JIS (based on Microsoft CP932) SAP DBCS Japanese
4102 UTF-16BE Unicode / ISO/IEC 10646 SAP Unicode on most Unix
4103 UTF-16LE Unicode / ISO/IEC 10646 SAP Unicode on x86
Some examples for RDI data-stream for different Codepages (With HEX numbers for leading bytes):
48,30,34,36,41 H046A
... S
... CCODEPAGE 1100 LANGUAGE DE
48,30,34,36,41 H046A
... S
... CCODEPAGE 8000 LANGUAGE JA
00,48,00,30,00,34,00,36,00,41 H 0 4 6 A
... S
... C C O D E P A G E 4 1 0 2 L A N G U A G E D E
00,48,00,30,00,34,00,36,00,41 H 0 4 6 A
... S
... C C O D E P A G E 4 1 0 3 L A N G U A G E E N
You need to have distinction of cases. You can recognize codepage by:
Case 1: Are first 5 Bytes "48,30,34,36,41" it is a 8-bit or similar (e.g. Shift JIS) codepage
Case 2: Are first 5 Bytes "00,48,00,30,00" you have 16-bit codepage
More data can then be extracted form data-stream, e.g. the codepage 8000 for Shift JIS.
(do not forget: devices type UCPLAIN passes data always with UTF16 BE)
!!!! Please note for release prior to SAP R/3 4.6A, start sequence is different: H040A
To get BOM in data stream there is the option to change devise type in SAP System:
Please copy the device type into the Customer name space before
the change! Otherwise you will lose all changes during the next upgrade.
Please enter in new devise type "\0xFE\0xFF" or your desired BOM into the printer initialization section.