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 zie dat jullie allemaal aan sturen op de browser, maar als ik inlog via MYSQL manager dan zie ik dit probleem ook in de database velden.
Dus het zit echt daar.

Mij lijkt het dat ik ga zoeken met php op die verkeerde Ú.
en die dan vervang met preg_replace alleen als ik dit doe

preg_replace("/Ú/", 'e' $waarde); vind hij niks dus ik denk dat de preg_replace verkeerd zit. Ow hier kan het natuurlijk ook fout gaan op browser niveau.

Of kan ik dit ook met mysql uitvoeren dan doe ik het rechstreeks in MYSQL manager.
Nee, het zit NIET in je database. Jij kan namelijk helemaal niet zien wat er in je database zit. In je database zitten een hoop bits die door een combinatie van karakter set, collatie, connectie en browser instellingen uiteindelijk een teken zullen vormen op je scherm. Heb je niet alle bovenstaande punten correct ingesteld dan krijg je iets anders te zien dan wat je wilt zien.

Voorbeeld, in een database heb ik staan Pápa,selecteer ik dat record via de commandline tool van mysql, dan zie ik Pßpa.

Maar goed, als je eigenwijs wilt zijn moet je dat vooral doen, wil je het oplossen dan raad ik je aan mijn punten die ik eerder al heb gepost nog eens goed door te lezen en op te volgen.
anders kijken naar htmlspecialchars of htmlentities.
Wil niet eigenwijs zijn maar denk dat er altijd meerdere wegen zijn tot een oplossing.
Zal die van jou eens goed bekijken.
Ok, doe wat je wilt. Alleen wat je denkt klopt simpelweg niet. Wat jij 'ziet' in de database is niet wat in de database zit. Zolang je dat niet begrijpt zal je de verkeerde oplossingen proberen te vinden.

Daarnaast zijn er vast meerdere wegen, maar de manier van preg_replace is er daar niet 1 van. De reden is, wederom, dat wat jij 'ziet' in de database er helemaal niet is. Dus in je string die je in php krijgt staat helemaal geen 'Ú'. preg_replace zal die dus ook niet kunnen vinden en dus ook niet kunnen vervangen.

Dit kan je overigens testen door de string te converteren naar een hex waarde. Doe bijvoorbeeld eens dit:
<?php
function strToHex($string)
{
$hex='';
for ($i=0; $i < strlen($string); $i++)
{
$hex .= dechex(ord($string[$i]));
}
return $hex;
}

echo strToHex('Ú').'<br>';
echo strToHex('é').'<br>';
echo strToHex( $row['je_kolom_met_tekst_uit_database'] );
?>
Dit converteert de gegeven strings naar een HEX waarde. Hiermee kan je controleren welke karakters daadwerkelijk in de string zitten, zonder de interpretatie van de browser en dergelijke. De eerste is die 'Ú' die jij denkt te zien in je database. Check of die HEX waarde ook in de string zit die uit je database komt. Zo niet, dan kan geen enkele vervang actie je helpen.
Rik even een andere vraag. Je hebt het over een import, wat voor import?
SQL dump? CSV?

Reageren