Ik heb in mijn database problemen met de è deze zet hij zo neer CafÚ.
Hoe kan ik dit nu oplossen en de gene waar het fout is gegaan aanpassen dat deze bijvoorbeeld Cafe zo worden.
Ik neem even voor het gemak aan dat je binnen XAMPP werkt.
Dan ga je naar phpmyadmin en ga je naar je database. Daar kies je de desbetreffende tabel en verander je letterlijk de waarde van CafÚ naar Café. Doet hij het dan wel?
Wat Albert bedoelt is niet echt relevant, want het zal je geen zier helpen.
Hoe iets in de database is opgeslagen is niet jouw probleem, hoe je het op het scherm wilt krijgen, daar gaat het om. Daarvoor zijn er 3 (soms 4) stappen van belang.
1) stel je database collatie goed in. Over het algemeen zijn utf8_general_ci of utf8_unicode_ci de beste, maar andere sets kunnen al voldoende zijn.
2) zorg dat je je connectie met de database goed hebt, daar heb je de juiste karakter set en de juiste collatie nodig
3) verstuur de juiste headers naar de browser, zodat ook de browser weet op welke manier de tekst moet worden geinterpreteerd
4) eigenlijk hetzelfde als stap 3, maar dan niet via een header, maar via een meta tag in je html. Eigenlijk kan je deze stap wel weglaten, als je de header juiste verstuurt moet dat voldoende zijn.
[size=xsmall]Toevoeging op 14/05/2013 16:03:58:[/size]
Albert de Wit op 14/05/2013 15:57:40
Ik neem even voor het gemak aan dat je binnen XAMPP werkt.
Dan ga je naar phpmyadmin en ga je naar je database. Daar kies je de desbetreffende tabel en verander je letterlijk de waarde van CafÚ naar Café. Doet hij het dan wel?
Het spijt me Albert, maar dat is echt totale onzin. Dit zal je NOOIT gaan helpen met dit soort problemen, zolang je collatie van de database, connectie en de juiste HTML headers niet gebruikt.
En nee, met preg_replace zal je weinig tot niets kunnen uitrichten. 9 van de 10 keer zit het probleem namelijk in het feit dat de browser de tekens niet goed interpreteert en dat kan je op die manier niet verhelpen.
Wat Albert bedoelt is niet echt relevant, want het zal je geen zier helpen.
Het spijt me Albert, maar dat is echt totale onzin. Dit zal je NOOIT gaan helpen met dit soort problemen, zolang je collatie van de database, connectie en de juiste HTML headers niet gebruikt.
Dat is eigenlijk precies waar ik naartoe wilde... Ik wou kijken of hij de collatie wel goed had staan. Ik nam aan dat TS er niet de meeste verstand van had sinds hij al vroeg hoe hij het letterlijk in de database moest veranderen.
De character set = utf8 en de Collation is utf8_general_ci
En stel je de verbinding goed in (stap 2) en geef je de juiste headers mee (stap 3). Zonder die stappen kan de collatie goed zijn, maar krijg je nog niet het juiste resultaat in veel gevallen.
Rik Engelen op 14/05/2013 16:42:24
Het probleem is dat in de DB nu die waardes fout staan en dit ook fout op de site komt.
ik wil eigelijk zoeken met php preg_match naar die verkeerde U en die dan vervangen met preg_replace alleen weet de juiste syntax niet helaas.
Dat kan niet, want wat je op je scherm krijgt is niet wat er in de database staat. Wat je op het scherm krijgt is een interpretatie van de browser. Die preg_match, of welke vervanging dan ook, gaat over het algemeen geen zier helpen. Daarnaast is het ook nog eens onbegonnen werk als het wel al zou kunnen. Nu heb je die e met een accent, maar heb je enig idee hoeveel verschillende karakters je wel niet kan maken met alle verschillende accenten en andere extra's?