Как сделать, чтобы fgets правильно работал на кодировке UTF-16LE?
Есть csv в UTF-16LE, не могу его корректно переконвертировать в UTF-8.
Перепробовал уйму разных способов, использовал как функцию iconv(), которая выкидывала исключения на мультибайтовые символы, так и mb_convert_encoding ($line, 'UTF-8', 'UTF-16LE'), которая выдает иероглифы, вместо кирилицы.
У меня подозрение, что можно пользоваться и iconv, если решить проблему в неверным количеством байт в строке.
Если вдруг кому-то будет полезно - fgets на кодировке UTF-16LE ломает переводы строк.
Для решения проблемы воспользовался системной утилитой iconv через shell_exec()