[php-xmlparser] probleem met textcodering

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Voor een website verkrijg ik gegevens van een externe server middels xml.
De header van de aangeleverde xml luidt:
Code:
<?xml version="1.0" encoding="ISO-8859-1"?>

In de xml zijn diakritische karakters aanwezig, deze worden incorrect weergegeven. Een é in Eénpersoonskamer wordt getoond als E?ersoonskamer

Wanneer ik utf8_decode op de inkomende data doe, worden de tekens wél goed weergegeven. Wanneer ik ze hierna echter door de xml parser heen laat gaan, resulteert dit weer in bovenbeschreven fout.

Wat ik heb geprobeerd:
- html content type header op ISO-8859-1 en op utf8
- xml parser initialiseren op ISO-8859-1 en op utf8
- utf8_[en/de]code op geparsede gegevens
- iconv toepassen op binnenkomende gegevens
- htmlentities / htmlspecialchars op geparsede data
- google

Iemand een idee in welke richting ik het probleem moet zoeken?

Acties:
  • 0 Henk 'm!

  • frickY
  • Registratie: Juli 2001
  • Laatst online: 18-09 14:42
Waar worden die karakters incorrect weergegeven? Wanneer je het bestand opent in Internet Explorer?
Zorg dat ook de juiste HTTP header wordt meegegeven om de codering aan te geven.
In PHP ou je dat doen met
PHP:
1
header("Content-Type: text/xml; charset=iso-8859-1");


Ai.. had je dus al geprobeert? Maar het klopt dus dat je borwser (welke?) hetgeen is waar de karakters niet goed worden getoont?

[ Voor 21% gewijzigd door frickY op 22-06-2006 18:08 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
ja dat heb ik al geprobeerd.
Het probleem is dat ik de tekst voordat ik em in de xmlparser stop met utf8-decode wel goed getoond kan krijgen. Na het parsen is dit echter niet meer het geval.

Acties:
  • 0 Henk 'm!

  • frickY
  • Registratie: Juli 2001
  • Laatst online: 18-09 14:42
Waar kun je hem goed getoont krijgen? In IE/FF?
Open hem eens in Wordpad? (Bestand -> Openen -> URL invoeren)

Het is wel zeker dat die "diakritische" karakters in de tekenset van ISO-8859 voorkomen? Oftewel, de fout zit hem niet in de server die de XML genereert?

[ Voor 44% gewijzigd door frickY op 22-06-2006 18:21 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
PHP:
1
2
3
4
5
6
7
8
function loadXML(){
    echo (utf8_decode($data)); //correcte weergave
    xml_parse($xml_parser,utf8_decode($data));
}

function characterData($parser, $data) {
    echo(utf8_decode($data)); //incorrecte weergave
}


zie bovenstaande code voor een idee van de werking..meer toelichting nodig?