我正在将 Excel 生成的 CSV 文件中的内容导入 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('<dictionary></dictionary>');
//do things
$dom = dom_import_simplexml($dictionary) -> ownerDocument;
$dom -> formatOutput = true;
header('Content-encoding: utf-8'); //<3 UTF-8
header('Content-type: text/xml'); //Headers set to correct mime-type for XML output!!!!
echo $dom -> saveXML();
这工作正常,但我遇到了一个非常奇怪的问题。当 String 的第一个字母是元音变音时(如Österreich
or Ägypten
),该字符将被省略,导致gypten
or sterreich
。如果 Umlaut 位于字符串 ( Russische Föderation
) 的中间,则它会正确传输。类似ß
或é
其他的事情也是如此。
所有文件均采用 UTF-8 编码并以 UTF-8 提供。
这对我来说似乎很奇怪和类似错误,但也许我错过了一些东西,这里有很多聪明人。