Speciale tekens

Status
Niet open voor verdere reacties.

jeroendenoot

Terugkerende gebruiker
Lid geworden
14 mrt 2005
Berichten
1.492
Hallo, ik heb gemaakt dat PHP gegevens uit een XML-bestand haalt, maar nu worden alle speciale tekens zoals é en ü verkeerd weergeven. Er komen dingen te staan als é en ü. In de broncode wordt het trouwens wel goed weergeven. Ik heb al geprobeerd alle tekens om te zetten in HTML-code (ASCII):
PHP:
$nieuwetekst = "";
for($teller = 0; $teller < strlen($tekst); $teller++){
	$nieuwetaginhoud .= "&#" . ord(substr($tekst, $teller, 1)) . ";";
};
$tekst= $nieuwetekst;
Maar dat geeft precies hetzelfde resultaat. Als ik nu in de broncode kijk zie ik zelfs dat die rare tekens zijn omgezet in HTML-code. Hoe kan ik dit probleem oplossen?
 
Laatst bewerkt:
Waarschijnlijk is de bronpagina in een andere karakterencodering dan je eigen pagina (ik gok UTF-8 versus ISO-8859-1). Probeer het eens met utf8_decode over de XML output heen.
 
Ja, bedankt, dat werkt bijna perfect! :):thumb:
Nu heb ik nog een probleem waarvan ik niet zeker weet of dat wel oplosbaar is: Griekse tekens worden nu als vraagtekens weergeven, óók in de broncode worden ze als vraagtekens weergeven, wat voor het gebruiken van de functie 'utf8_decode()' niet het geval was. Is het misschien mogelijk deze goed te weergeven of is dat onmogelijk?
 
Laatst bewerkt:
Je maakt het niet gemakkelijk zo :D

Misschien werkt dit:

PHP:
header("Content-Type: text/html; charset=ISO8859-7"); // Griekse encoding

edit: waarschijnlijk niet, ik zoek nog even verder :p
 
Laatst bewerkt:
Dit valt nog niet mee zeg :confused:

Je kan misschien met iconv wat proberen, maar de makkelijkste manier lijkt me toch om in plaats van de XML te decoderen je eigen pagina te encoderen naar UTF-8.
 
Ik ben niet erg bekend met deze zaken, maar hier is een poging :D

Zet onderstaande regel bovenaan je code:

PHP:
iconv_set_encoding("output_encoding", "UTF-8");

En zorg dat dit ook netjes verwerkt wordt (dus ook bovenaan je code, evt tussen andere headers):

PHP:
header("Content-Type: text/html; charset=UTF-8");
 
Laatst bewerkt:
Bedankt, maar als ik dat doe krijg ik weer precies hetzelfde resultaat als waar ik mee begon, met die rare tekens en zo. Als ik dan die functie 'utf8_decode' er weer in zet (inclusief de code die je me net gaf) krijg ik weer die vraagtekens... Nog ideeën?
 
Ik geef het op
Lehoh.gif
 
Oké, bedankt voor alles in ieder geval. :thumb: Als er nog iemand is die een oplossing weet hoor ik het graag.
 
Het is gelukt! Ik had een hele domme fout gemaakt:
Ik had de Griekse encoding laten staan in plaats van er de UTF-8 encoding neer te zetten. :o Sorry daarvoor en bedankt dat je toch het goede antwoorde had gegeven. :o:thumb:
 
^ dat was ik zelf ook vergeten te veranderen na het copypasten; ik dacht er later nog aan (vandaar "Laatst aangepast door KwarK : Vandaag om 17:07"). Mooi dat het toch nog goed werkt nu :D
 
Oh, dan had ik het dus toch wel goed gezien. ;) Maar ja, vraag opgelost dus. :thumb:
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan