Проблемы с кодировкой UTF-8 при работе с CSV
Есть CSV файлы сохраненный в UTF-8. Я пытаюсь получить значение первого столбика вот таким способом:
$f = fopen(public_path('/path/file.csv'), 'r');
$columns = fgetcsv($f, null, ';');
var_dump($columns[0]);
Результат: string(5) "id". Как видите в строка "id", а символов там 5, хотя должно быть 2. Если сделать вывод в JSON (var_dump(json_encode($columns[0]));), то получаю вот такой результат: string(10) ""\ufeffid"". Как исправить эту ситуацию и получать строку в нормальном формате string(2) "id"?
Ответы (1 шт):
Автор решения: Daniel Protopopov
→ Ссылка
У вас файл содержит BOM заголовок. Есть два варианта развития событий:
- Обработать файл, сконвертировав формат
- Удалить BOM заголовок
В Сети так же полно примеров загрузки CSV файла.