fgetcsv () удаляет символы с диакритическими знаками (т.е. не ASCII) - как это исправить?

Похожие вопросы:
Некоторые символы в файле CSV не читаются во время PHP fgetcsv () ,
fgetcsv () игнорирует специальные символы, когда они находятся в начале строки

У моего приложения есть форма, в которой пользователи могут загрузить файл CSV (его 5 внутренних пользователей всегда загружали действительный файл - разделенный запятыми, заключенный в кавычки, записи заканчиваются на LF), а затем файл импортируется в базу данных с помощью PHP:

$fhandle = fopen($uploaded_file,'r');
while($row = fgetcsv($fhandle, 0, ',', '"', '\\')) {
    print_r($row);
    // further code not relevant as the data is already corrupt at this point
}

По причинам, которые я не могу изменить, пользователи загружают файл, закодированный вWindows-1250 charset - однобайтовая 8-битная кодировка символов.

Проблема: инемного (не все!) символы за 127 («расширенный ASCII») сбрасываются вfgetcsv(), Пример данных:

"15","Ústav"
"420","Špičák"
"7","Tmaň"

становится

Array (
  0 => 15
  1 => "stav"
)
Array (
  0 => 420
  1 => "pičák"
)
Array (
  0 => 7
  1 => "Tma"
)

(Обратите внимание, чтоč хранится, ноÚ упал)

Документация дляfgetcsv говорит, что «начиная с 4.3.5, fgetcsv () теперь бинарно безопасен», но похоже, что это не так. Я делаю что-то не так, или эта функция не работает, и я должен искать другой способ для анализа CSV?

Ответы на вопрос(1)

Ваш ответ на вопрос