UTF-8 en htmlentities in xml en php
probleempje hier: in semi-user generated content gebruik ik html_entities om die vervolgens te laten zien op de website. werkt prima, ë, ä, é etc worden mooi weergegeven. die user generated content wordt opgeslagen in een XML bestand, en bij het uitlezen doet hij dat prima. tot net, toen gaf hij de foutmelding dat 'oriëntatiedagen' geen juiste utf-8 code is en laat de hele boel crashen. op andere paginas doet hij alles wel prima (ook de ë, wat het probleem blijkt te zijn), maar net deze valt hij over. wanneer ik de functie utf8_encode() gebruikte, doet hij het op deze pagina prima, maar op de andere paginas weer verkeerd.
Herkent iemand dit probleem?
Toevoeging op 16/09/2014 22:52:30:
ik heb op dit moment op deze specifieke pagina utf8_encode() gebruikt, op de andere paginas niet. werkt, maar is natuurlijk niet de manier
kijk ook eens naar de karakterset op de pagina's waar de invoer van de users binnenkomt: is daar ook utf8 gedefinieerd?
Voorwaarde is wel dat je de database velden ook allemaal instelt op utf8_unicode_ci Collatie. en dat je je verbinding ook instelt op de juiste characterset:
met mysqli:
Verder natuurlijk ook in je html aangeven dat je met utf8 werkt:
wanneer een xml file wordt ingeladen door met het simpleXML object wordt alles standaard in utf-8 gezet. en daar gaat het mis
dat probleem had ik ook. Ik heb het opgelost met https://github.com/neitanod/forceutf8 en wel met de fixUTF8 functie.
Gewijzigd op 17/09/2014 00:43:07 door Frank Nietbelangrijk
ik heb 2 xml bestanden: ze ondergaan beide exact dezelfde code om te parsen. (deze gebruikt overigens bij de output html_entities())
bij bestand 1 moet ik utf8_encode() gebruiken, anders geeft hij foutmeldingen, en met die functie doet ie het perfect
bij bestand 2 moet ik die functie juist niet gebruiken: anders veranderd intuïtie in intuïtie (bijvoorbeeld)
waarom gaat dit fout?
Zoek eens dichter bij de bron: wie of wat heeft die bestanden aangemaakt?
Ik heb dat bestand aangemaakt, en volgens notepad++ staat dat in utf-8. het inladen van karakters als ë, ï etc doet het niet