>Можно ли как-то пересохранять этот CSV файл или преобразовывать его «на лету» в формат UTF-8
Про php ничего не скажу, его не знаю, но при желании распознавать кодировку 866 или 1251 легко, посмотрите сюда
https://github.com/softlandia/change-code-page
Это код на go
Там есть определение и конвертация в кодировку. Если что пишите там, я допилю