Вы можете использовать спецификацию в качестве подписи независимо от того, как преобразуется текст Unicode: UTF-16, UTF-8 или UTF-32. Точные байты, составляющие спецификацию, будут такими, какими будет преобразован символ Unicode U+FEFF
в этот формат преобразования. В этой форме спецификация служит для указания того, что это файл Unicode, и в каком формате он находится.
Если вы хотите, просто передайте строку (которая является двоичной в PHP), которая содержит спецификацию. Пример строки:
Bytes PHP String Encoding Form
----- ---------- -------------
00 00 FE FF "\0\0\xFE\xFF" UTF-32, big-endian
FF FE 00 00 "\xFF\xFE\0\0" UTF-32, little-endian
FE FF "\xFE\xFF" UTF-16, big-endian
FF FE "\xFF\xFE" UTF-16, little-endian
EF BB BF "\xEF\xBB\xBF" UTF-8
См. http://unicode.org/faq/utf_bom.html