Axel Richter: Einlesen von xml-Dokument ergibt fehlerhafte Zeichen

Beitrag lesen

Hallo,

ich versuche gerade, mittels file_get_contents eine xml-Datei (genauer eine RSS-Datei) einzulesen. Wenn ich mir die Datei aber ausgeben lasse, sind alle Sonderzeichen zu '?' umgewandelt worden (benutze Charset UTF-8).

Wo wird charset UTF-8 genutzt?
In welchem charset sind die Zeichen in der RSS-Datei kodiert?
Welches charset nutzt PHP?

$patterns = array(
  '/ß/',     // ß
  '/Ä/', '/ä/',  // Ä, ä
  '/Ö/', '/ö/',  // Ö, ö
  '/Ü/', '/ü/'  // Ü, ü
);

$replacements = array(
  'ß',      // ß
  'Ä', 'ä',   // Ä, ä
  'Ö', 'ö',   // Ö, ö
  'Ü', 'ü'   // Ü, ü
);

$data = preg_replace($patterns, $replacements, file_get_contents($file));

Du ersetzt z.B. das Vorkommen der Entity Ä durch die Entity Ä. Was soll das bringen? Meiner Meinung nach wird da gar nichts ersetzt. Es müssten nämlich die Entities Ä ... im RSS-File stehen.

Wenn die RSS-Datei in UTF-8 kodiert ist, dann musst Du http://de.php.net/utf8-decode benutzen.

viele Grüße

Axel