Проблемы с UTF-8 при чтении CSV-файла с помощью fgetcsv

Я пытаюсь прочитать CSV и повторить его содержимое. Но в контенте символы отображаются неправильно.

Mäx Müstermänn -> Mäx Müstermänn

Кодировка файла CSV - UTF-8 без спецификации (проверено с помощью Notepad ++).

Это содержимое CSV-файла:

«Mäx»; «Müstermänn»

Мой сценарий PHP







First nameLast name';
while ($data = fgetcsv ($handle, 1000, ";")) {
        $num = count ($data);
        for ($c=0; $c < $num; $c++) {
            // output data
            echo "$data[$c]";
        }
        echo "";
}
?>


Я пытался использовать setlocale (LC_ALL, 'de_DE.utf8'); , как было предложено здесь , но безуспешно. Контент по-прежнему отображается неправильно.

Что мне не хватает?

Изменить:

echo mb_detect_encoding ($ data [$ c], 'UTF-8'); дает мне UTF-8 UTF-8.

echo file_get_contents ("specialchars.csv"); дает мне "Mäx"; "Müstermänn" .

И

print_r(str_getcsv(reset(explode("\n", file_get_contents("specialchars.csv"))), ';'))

дает мне

Array ([0] => Mäx [1] => Müstermänn)

Что это значит?

31
задан Community 23 May 2017 в 10:31
поделиться