Hoi,
ik werk met een php-xml parser om gegevens in een MYSQL database te krijgen. In de endElementHandler check ik op het voorkomen van een bepaalde node en dan voer ik een insert query uit. Nu is de xml-file ISO-8859-1 gecodeerd. Dus laat ik de parser de data "UTF-8" encoden en als ik de insert query uitvoer, decode ik het terug. Nu gaat dit allemaal goed, behalve als ik een vreemd karakter gebruik, zoals 'ë,à' of een enkele quote. Dan kapt ie alles voor het vreemde teken af. De htmlentities gebruiken doet ook niets. (Om even te tonen wat de output is, echo ik gewoon de gegevens in de endElementHandler)
zo wordt de parser geinitieerd
geeft als output:
Nederland
Belgi
ë
Frank
'rijk
Weet iemand wat hoe ik dit kan oplossen? thx
ik werk met een php-xml parser om gegevens in een MYSQL database te krijgen. In de endElementHandler check ik op het voorkomen van een bepaalde node en dan voer ik een insert query uit. Nu is de xml-file ISO-8859-1 gecodeerd. Dus laat ik de parser de data "UTF-8" encoden en als ik de insert query uitvoer, decode ik het terug. Nu gaat dit allemaal goed, behalve als ik een vreemd karakter gebruik, zoals 'ë,à' of een enkele quote. Dan kapt ie alles voor het vreemde teken af. De htmlentities gebruiken doet ook niets. (Om even te tonen wat de output is, echo ik gewoon de gegevens in de endElementHandler)
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| <?xml version="1.0" encoding="ISO-8859-1"?> <Group> <Cat> <Number>1</Number> <LandNL>Nederland</LandNL> </Cat> <Cat> <Number>2</Number> <LandNL>België</LandNL> </Cat> <Cat> <Number>3</Number> <LandNL>Frank'rijk</LandNL> </Cat> </Group |
zo wordt de parser geinitieerd
code:
1
2
3
4
| $xml_parser = xml_parser_create(); xml_parser_set_option($xml_parser,XML_OPTION_SKIP_WHITE,TRUE); xml_parser_set_option($xml_parser,XML_OPTION_CASE_FOLDING,FALSE); xml_parser_set_option($xml_parser,XML_OPTION_TARGET_ENCODING,"UTF-8"); |
code:
1
2
3
4
5
| function endElementHandler($parser, $name) { global $values; if ($name =="Cat") { echo utf8_decode($values["LandNL"])."<br />"; } |
geeft als output:
Nederland
Belgi
ë
Frank
'rijk
Weet iemand wat hoe ik dit kan oplossen? thx
[ Voor 12% gewijzigd door Anoniem: 138552 op 04-07-2006 12:09 ]