fgetcsv ест первую букву строки, если это умлаут

Я импортирую содержимое из CSV-файла, созданного в Excel, в документ XML, например:

$csv = fopen($csvfile, r);
$words = array();

while (($pair = fgetcsv($csv)) !== FALSE) {
    array_push($words, array('en' => $pair[0], 'de' => $pair[1]));
}

Вставленные данные являются английскими / немецкими выражениями.

Я вставляю эти значения в структуру XML и выводю XML следующим образом:

$dictionary = new SimpleXMLElement('');
//do things
$dom = dom_import_simplexml($dictionary) -> ownerDocument;
$dom -> formatOutput = true;

header('Content-encoding: utf-8'); // saveXML();

Это работает нормально, но я столкнулся с одной действительно странной проблемой. Когда первая буква строки является умлаутом (как вÖsterreich или жеÄgypten) символ будет опущен, в результате чегоgypten или жеsterreich, Если Умлаут находится в середине строки (Russische Föderation) оно передается правильно. То же самое касается таких вещей, какß или жеé или что угодно.

Все файлы имеют кодировку UTF-8 и обслуживаются в формате UTF-8.

Мне это кажется довольно странным и похожим на ошибку, но, может быть, я что-то упустил,Здесь много умных людей.

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

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