У меня есть простой script, который принимает CSV файл и считывает каждую строку в массив. Затем я просматриваю каждый столбец первой строки (в моем случае он содержит вопросы опроса), и я распечатываю их. Опрос на французском языке и всякий раз, когда первый символ вопроса является особым символом (é, ê, ç и т.д.), Fgetcsv просто опускает его.
Специальные символы в середине значения не затрагиваются только тогда, когда они являются первым символом.
Я попытался отладить это, но я озадачен. Я сделал var_dump с содержимым файла, и символы там определенно:
var_dump(utf8_encode(file_get_contents($_FILES['csv_file']['tmp_name'])));
И вот мой код:
if(file_exists($_FILES['csv_file']['tmp_name']) && $csv = fopen($_FILES['csv_file']['tmp_name'], "r"))
{
$csv_arr = array();
//Populate an array with all the cells of the CSV file
while(!feof($csv))
{
$csv_arr[] = fgetcsv($csv);
}
//Close the file, no longer needed
fclose($csv);
// This should cycle through the cells of the first row (questions)
foreach($csv_arr[0] as $question)
{
echo utf8_encode($question) . "<br />";
}
}